12.2.3 触摸屏驱动中的硬件控制
代码清单12.15中的一组宏用于控制触摸屏和ADC进入不同的工作模式,如等待中断、X/Y位置转换等。
代码清单12.15 触摸屏和ADC硬件控制
1 #define wait_down_int(){ ADCTSC = DOWN_INT | XP_PULL_UP_EN |\
2 XP_AIN | XM_HIZ | YP_AIN | YM_GND | \
3 XP_PST(WAIT_INT_MODE); }
4 #define wait_up_int(){ ADCTSC = UP_INT | XP_PULL_UP_EN | XP_AIN |\
5 XM_HIZ |YP_AIN | YM_GND | XP_PST(WAIT_INT_MODE); }
6 #define mode_x_axis(){ ADCTSC = XP_EXTVLT | XM_GND | YP_AIN \
7 | YM_HIZ |XP_PULL_UP_DIS | XP_PST(X_AXIS_MODE); }
8 #define mode_x_axis_n(){ ADCTSC = XP_EXTVLT | XM_GND | YP_AIN | \
9 YM_HIZ |XP_PULL_UP_DIS | XP_PST(NOP_MODE); }
10 #define mode_y_axis(){ ADCTSC = XP_AIN | XM_HIZ | YP_EXTVLT \
11 | YM_GND |XP_PULL_UP_DIS | XP_PST(Y_AXIS_MODE); }
12 #define start_adc_x(){ ADCCON = PRESCALE_EN | PRSCVL(49) | \
13 ADC_INPUT(ADC_IN5) | ADC_START_BY_RD_EN | \
14 ADC_NORMAL_MODE; \
15 ADCDAT0; }
16 #define start_adc_y(){ ADCCON = PRESCALE_EN | PRSCVL(49) | \
17 ADC_INPUT(ADC_IN7) | ADC_START_BY_RD_EN | \
18 ADC_NORMAL_MODE; \
19 ADCDAT1; }
20 #define disable_ts_adc(){ ADCCON &= ~(ADCCON_READ_START); }
|
| 回书目 上一节 下一节 |