世界服装鞋帽网免费做网站,注册深圳公司代理,商城网站风格,互联网广告行业前景链接#xff1a;https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd1688 提取码#xff1a;1688 教学内容#xff1a;
1、ADC
S3C2440的A/D转换器包含一个8通道的模拟输入转换器#xff0c;可以将模拟输入信号转换成10位数字编码。
在A/D转换时钟频率为2.5MHz时https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd1688 提取码1688 教学内容
1、ADC
S3C2440的A/D转换器包含一个8通道的模拟输入转换器可以将模拟输入信号转换成10位数字编码。
在A/D转换时钟频率为2.5MHz时其最大转换率为500KSPS5个时钟周期完成一次转换
输入电压范围为03.3V。
AD转换接口中的AIN[7]-AIN[4]四个通道为触摸屏的模拟信号输入口,低4位通道为普通的AD通道。
外AD转换A[3]-A[0]
1、设置ADCCON寄存器
通过ECFLG[15]可以查询是否转换完成PRSCEN[14]预分频使能PRSCVL[13:6]分频大小
SEL_MUX[5:3]选择AD转换通道;STDBM[2]:0普通模式READ_START[1]:1,读取完后自动继续AD转换0停止使能读取ENABLE_START[0]:1,启动AD转换启动后自动清零
2)、ADCTSC
全设为0
3、ADCDLY
AD延时
4、ADCDATn
ADCDAT0[9:0]AD转换的数据ADCDAT0[15:12]:触摸屏AD相关可以不设。 2、触摸屏AD转换AIN[7]-AIN[4]
1、设置ADCCON和普通相关
2、设置ADCTSC UD_SEN---抬起按下中断设置0检查点击触摸屏1检查弹起触摸屏 0使能按下中断 1使能台起中断
YM_SEN---选择YMON的输出值 0输出0YM高阻 1 输出1YMGND
YP_SEN---选择nYPON的输出值 0输出0YP外部电压 1输出1YP连接AIN[5]
XM_SEN---选择XMON的输出值 0输出0 XM高阻 1 输出1XMGND
XP_SEN---选择nXPON的输出值 0输出0XP外部电压1输出1XP连接AIN[7]
PULL_UP---上拉切换使能等待中断才上拉其他1 0XP上拉使能 1 XP上拉禁止
AUTO_PST---自动连续转换X轴和Y轴坐标模式选择连续是测量X之后会继续测量Y 0普通A/D转换 1连续X/Y轴转换模式
XY_PST---手动测量X轴和Y轴坐标模式选择 00无操作模式 01对X坐标测量 10对Y坐标测量 11等待中断模式 等待中断模式
YMON1; nYPON1;XMON0;nXPON1
YM接地
YPAIN[5]
XM高阻
XPAIN[7](上拉) YM_SEN1YP_SEN1XM_SEN0XP_SEN1;PULL_UP0XY_PST11 测量X坐标
YMON0; nYPON1XMON1;nXPON0
YM高阻
YPAIN[5]
XM接地
XP上拉 YM_SEN0YP_SEN1XM_SEN1XP_SEN0;PULL_UP1XY_PST01 测量Y坐标
YMON1; nYPON0;XMON0;nXPON1
YM接地
YP上拉
XM高阻
XPAIN[7] YM_SEN1YP_SEN0XM_SEN0XP_SEN1;PULL_UP1XY_PST10
//*************触摸中断服务程序**********************************
void __irq Adc_or_TsSep(void)
{ unsigned int valx, valy; int i; rSUBSRCPND | BIT_SUB_TC; //清零 ClearPending(BIT_ADC); //清零 if(rADCDAT00x8000)//stylus up { Uart_Printf(\nStylus Up!!\n); rADCTSC ~(0x018); // Set stylus down interrupt } else { Uart_Printf(\nStylus Down!!\n); // 采集X轴 rADCTSC(08)|(07)|(16)|(15)|(04)|(13)|(02)|(1); valx 0; for(i0;i5;i) { rADCCON|0x1; while(rADCCON 0x1); //启动 while(!(0x8000rADCCON)); //等待结束 valx (0x3ffrADCDAT0); //取值 } valx / 5; // 采集Y轴 rADCTSC(08)|(17)|(06)|(05)|(14)|(13)|(02)|(2); valy 0; for(i0;i5;i) { rADCCON|0x1; while(rADCCON 0x1); while(!(0x8000rADCCON)); valy (0x3ffrADCDAT1); } valy / 5; // 计算X和Y坐标 ResultX TOUCH_WIDTH * ( TOUCH_DEFAULT_RB -valx) / (TOUCH_DEFAULT_RB - TOUCH_DEFAULT_LB); ResultY TOUCH_HEIGHT * (valy - TOUCH_DEFAULT_TB) / (TOUCH_DEFAULT_BB - TOUCH_DEFAULT_TB); // 恢复到等待台起中断模式 rADCTSC(18)|(17)|(16)|(05)|(14)|(03)|(02)|(3); }
}
//*********************************************
在初始化中设置成按下中断等待模式清中断判断是抬起中断还是按下中断按下中断中设置ADCTSC为采集x坐标值这里不需要设置ADCCON3-5位了CPU自动设置了 按下采集结束后把中断模式改为抬起等待中断模式。 3、SPI总线
SPISerial Peripheral Interface),串行外围设备接口。是由Motorola公司开发用来在微控制器和外围设备芯片之间提供一个低成本、易使用的全双工同步串行总线。
SPI接口由SDI串行数据输入SDO串行数据输出SCK串行移位时钟CS从使能信号四种信号线构成。
S3C2440 SPI控制器及寄存器2个SPI每个都有6个专用寄存器共12个寄存器 SPCON模式控制选择8位
SPSTA状态注意0位1:检测收发就绪8位
SPPRE预分频8位
SPTDAT发送寄存器SPTDAT0SPTDAT1二个8位
SPRDAT接收寄存器SPRDAT0SPRDAT1二个8位