前阵子,我在一个2440 的机器上解决了触摸屏去抖动和防抖动的问题,昨天我把这个驱动放到另外以前做的一个2440 机器上,发现这个机器还是存在偶尔小跳点现象,并且频率不低。后来仔细对比,发现这主要是PCLK 两者不同造成的。调试好的FCLK:HCLK:PCLK=1:4:8,现在这个机器FCLK:HCLK:PCLK=1:3:6。所以问题就在这里了。
现在看看触摸屏驱动中和PCLK 有关的部分吧,把这个找到,修改一下,估计就OK。let me try!
PRSCVL [13:6] A/D converter prescaler value
Data value: 0 ~ 255
NOTE: ADC Freqeuncy should be set less than PCLK by 5times. (Ex. PCLK=10MHZ, ADC Freq.< 2MHz)
在触摸屏驱动中有
#define ADCPRS 49
v_pADCregs->ADCCON = (1<<14) | (ADCPRS<< 6) | (7<<3);
根据前面的条件PCLK(正常):PCLK(不正常)=(FCLK/8)/(FCLK/6)=3:4,如果现在这个机器触摸屏要正常就要满足
(FCLK/8)/49 =(FCLK/6)/X =》X=65
好!马上试试,等下来报告结果。
我晕,居然不行啊,还有存在小范围内跳点,什么原因呢?哦,原来这个触摸屏和上次的2440 触摸屏不是同一个材料的,这个是自己订做的,那个是NEC LCD 自带的。看来要解决这个问题还得想别的招数。不仅如此,放入这个触摸屏驱动后,这个触摸屏工作一段时间居然不工作了,这个标明触摸屏控制器挂了!god ,真是不同的材料会有很大问题产生啊。神了!
我再试试,这个触摸屏驱动死了,是否是转换太慢呢!还是?好,我我改大这个数值,以及降低触摸屏驱动延时看看。