[置顶] ov9650图像倒立及6410linux抖动的

OV9650 寄存器 0x1e将0x14或者0x34改为0x00。

决不藏私:S3C2440/6410 TOUCH抖动问题彻底解决-超级完美









#define TSP_SAMPLE_NUM 20

#define TSP_ADC_DELAY = 4000;

至于调用的TIMER中断,每秒次数降到50次即可

#define TSP_SAMPLE_RATE_LOW    (50)        // 50 Samples per Sec

#define TSP_SAMPLE_RATE_HIGH    (50)    // 50 Samples per Sec

(需确认PCLK和PWM_REGS算出来的每秒中断次数是不是符合50次)



如此一来,抖都不抖,且反映够快,且占用系统时间短

当初我是抓TOUCH会干扰串口的情况,就强迫好好的看TOUCH驱动,

才发现..大家的(官方的)做法有疑异:



TSP_ADC_DELAY大家都用10000,20000,40000这三种参数,

其实这是错的,把ADC的DELAY时间延长,大家的意思可能是让信号多点时间稳定,

但ADC转换本身就有误差,把时间延长并不能把信号更稳定,反而消耗系统时间而已.



所以我把TSP_ADC_DELAY缩短,把读取平均次数TSP_SAMPLE_NUM加大,

让cpu多读几次;多些数据累加平均,一试BINGO!!



而且有效降低TOUCH占用中断的时间,

上述的设定是占用2.1msec(从中断进入到离开中断)

但如果改为:

#define TSP_SAMPLE_NUM 10

#define TSP_ADC_DELAY = 2000;

占用可降低至0.15msec,虽然不抖了,但偶尔会发生位置编离的情况

如果不在意佔用时间的兄弟,可先把最上面的设定打进去,再来优化.



so,改好了吗?

是不是TOCUH连抖都不抖了,

如果还会抖,就是你的手在抖了 ^_^

http://blog.csdn.net/hongjiujing/article/month/2007/09/2?viewmode=contents#

你可能感兴趣的:(c,linux,优化,timer,delay)