文章目录
001 ADC硬件原理
硬件特性
s3c2440的ADC硬件原理图
s3c2440的ADC框图
- 怎么设置:
- a.设置8:1mux,选中要测量哪个引脚
- b.设置工作时钟
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FpI2iF6S-1581491700386)(en-resource://database/2384:1)] - c.启动
- d.读状态,判断ADC成功
- e.读数据
002 ADC编程
- 目标:
- a.初始化ADC
- b.读数据
- c.在串口上显示出来
- d.在LCD上显示出来
设置ADC寄存器
ADCCON
ADCTSC
ADCDLY
ADCDATA0
void adc_init(void)
{
/* [15] :ECFLG ,1 = End of A/D conversion
* [14] : PRSCEN ,1 = A/D converter prescaler enable
* [13:6]: PRSCVL ,adc clk = PCK / (PRSCVL + 1)
* [5:3] : SEL_MUX ,000 = AIN 0
* [2] : STDBM ,1 = Standby mode
* [1] : READ_ START ,0 = Disable start by read operation
* [0] : ENABLE_START,1 = A/D conversion starts and this bit is cleared after the startup.
*/
ADCCON = (1<<14) | (49<<6) | (0<<3) ;
ADCDLY = 0xff;
}
int adc_read_ain0(void)
{
/* 启动adc */
ADCCON |= (1<<0);
while(ADCCON & (1<<15)); /* 等待ADC结束 */
return ADCDAT0 & 0x3ff;
}
003 电阻触摸屏硬件原理
触摸屏示意图
测量触点X坐标 | 测量触点Y坐标 |
---|---|
Xp接3.3v,Xm接地,Yp、Ym不接电源 | Yp接3.3v,Ym接地,Xp、Xm不接电源 |
测Yp电压(就是X坐标) | 测Xp电压(就是Y坐标) |
使用触摸屏流程
- 1.按下触摸屏,产生触摸中断
- 2.在触摸屏中断程序中,启动ADC(目的:获得x,y坐标)
- 3.ADC完成,产生中断
- 4.在ADC中断中,读取x,y坐标
- 5.启动定时器
- 6.定时器中断发生,判断触摸屏仍被按下,回到第2步。
- 7.松开,结束。
003 S3C2440触摸屏接口
编程要点
ADC转化中断时,可以通过中断或者查询来得到数据
- 使用中断模式时,从AD转换开始到得到数据可能有些延迟,因为中断的进入和退出需要浪费一些时间。
- 如果像要立刻得到数据,可以使用ADC的查询方式,查询ADCCON[15],判断转化是否结束 。
ADCTSC设置与触摸屏等效电路图
- 触摸屏等待按下接口程序
void enter_wait_pen_dowm_mode(void)
{
ADCTSC = PULLUP_ENABLE | YM_ENABLE | YP_DISABLE | XP_DISABLE | XP_DISABLE | WAIT_INT_MODE ;
}
ADC/TS与中断的控制流程
怎么编程
- 1.初始化ADC/TS接口
- 2.设置TS处于等到中断
- 3.设置中断
- 4.按下,进去TS中断
- a.进入自动采集模式
- b.启动ADC
- 5.ADC中断
- a.读数据
- b.再次进入”等待中断模式“
- c.启动定时器
- 6.定时器中断
- a.若松开,结束
- b.若按下,进入4.b
005触摸屏编程_按下松开检测
- 状态转换图