有找到TI提供的触屏驱动,可以参考来学习ADC驱动,
目的:使用的是AN0 和AN1作为AI输入。读出 AN0 和AN1的值。
(1)时钟设置 (引脚配置)
(2)地址映射
(3)控制寄存器 (配置:TSCADC_CNTRLREG_TSCSSENB)
for(i=0;i<2;i++)
{
tscadc_writel(ts_dev, TSCADC_REG_STEPCONFIG(i),
TSCADC_STEPCONFIG_AVG_16 | TSCADC_STEPCONFIG_FIFO1|0x11 ); // 允许循环采样??
tscadc_writel(ts_dev, TSCADC_REG_STEPDELAY(i),
TSCADC_STEPCONFIG_OPENDLY);
}
//这步该怎么配置才是正确的呢?? 问题一: 上面AN0 和AN1的值都写入了FIFO1吗??
但是查看 了代码发现有很多的疑惑不懂。
fifo0count = tscadc_readl(ts_dev, TSCADC_REG_FIFO0CNT);
fifo1count = tscadc_readl(ts_dev, TSCADC_REG_FIFO1CNT);
readx1 = tscadc_readl(ts_dev, TSCADC_REG_FIFO0); //FIFO0 和 FIFO1 分别又128 ADC值。
ready1 = tscadc_readl(ts_dev, TSCADC_REG_FIFO1);
printk("cnt0=%d,cnt1=%d,FIFO0=%d,FIFO1=%d\n",fifo0count,fifo1count,readx1,ready1); 问题二:
假如: 我改变AI0 的电压 一种:0V 一种5V。,它的FIFO1值不是应该变化很大。。还是怎样??
打印出来的值,都不知道是什么来的。。
