大家好,
因为我上次在做触摸屏驱动调试时,出现读ADC有时侯读出来的X Y值有错误,有时侯是对的,后来通过查看ADC驱动,发现这两个驱动都注册了IRQF_ADC这个中断号,下面我把我所理解的和大家说下,如有不对的地方,请提出
在TS和ADC驱动中都需要读ADC中断,我们的产品需要通过ADC来读取电池电压,此处只需要用一个通道即可,而TS则需要用到ADC中的两个通道来读取X Y轴值,如果不做处理,就会出现两边同时进行读时,不管哪一边,都会造成中断,从而导致读取的值不正确,当然这里有多种方法解决,如:可以在驱动中添加一个struct semaphore信号量来做同步,也可以读取时判断通道,我看了下Mini2440的Linux-2.6.29中的处理就是添加了一个extern struct semaphore ADC_LOCK,我是这样理解的,请版主看下