小弟在做一个基于2440的WinCE触摸屏的PWM背光调节驱动。我在oalintr.h里自定义了一个#define SYSINTR_MYINTR (SYSINTR_FIRMWARE + 19),然后在cfw.c里修改了相关的函数。最后在IST里用InterruptInitialize()将自定义中断和Event关联起来,并WaitForSingleObject()。
生成dll后,我用EVC编写一个简单的应用程序,打开测试。
在示波器里看到,GPB0已经有PWM方波出现,但是问题来了:
1、我将的预分频值是255、4(rTCFG0=255、rTCFG1=0x01),rTCNTB0=160,但是方波出来的频率值是3.11K,这样我推算回来,PCLK应该达到了509M。与我之前预想的50M不符合。不知道是哪里的问题,还是我计算错误的问题。我已经设了为1:4:8了。
2、打开驱动后,触摸屏就失效了,轻点屏幕,就变为了右键点击。我查看了cfw.c文件,原来触摸屏驱动里,用到了TIEMER0与TIMER1的中断。这样我就头大了,我现在想如何才可以调试这些中断,小弟刚刚抵触这些底层。还有,WinCE好像默认采用了TIMER4作为时钟计时了。
3、基于以上原因,我想请教一下,作为背光调节,可不可以不用自定义一个中断,就利用直接赋值的方法,像玩单片机一样,控制TCNTB与TCMPB寄存器?
PWM调节,怎么需要设置中断呢?PWM设置好之后,就自动产生PWM方波了,不需要随时调整的。
背光调节,在应用层可以做,但是不需要中断,只要背光驱动的调节背光IOControl加上就行。
2440的T4是不对外输出信号,所以一般能找到的BSP都是以T4作为系统时钟用的。这倒不是WINCE默认的。
你的问题解决了吗?
我想知道,你的LCD_PWREN是不是连接在一个pwm输出口上啊?
如果在的话,请速回复我啊