PWM只发了几个周期就没了,定时器不知道咋的被关掉了

han001   2009-8-7 17:20 楼主
我要用TOUT3口发PWM,
我是在键盘驱动初始化的时候,顺便加上了对定时器的初始化的。

开机的时候运行到键盘初始化那里,进行定时器初始化,
对TCON,TCNTB,TCMPB等赋值,设置成自动装载模式,并更新down-counter的值,然后启动计时。

从示波器里看到运行到TOUT3口确实发出了PWM波,但只有6到7个周期,之后端口成低电平。

通过打印信息,看到TCON的Timer3的启动位,在开始一段时间是'1',但后来就'0'了,就是停止计时了。因此就没方波了。

问题是计时启动后,我并没有对定时器作任何的处理!!!


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

于是我创建了一个线程,在线程里不断检测TCON的Timer3的启动位的状态,是0的话就置1,启动计时器。

打印信息表明:Timer3的启动位频频被置0,我需要不断的给它置1,才能发出PWM,
而且可能是由于检测有时延的原因,发出的PWM波形跟我设定的不一致了!!


我想问一下可能是什么地方频频的把timer3的启动位清零??这个问题有什么好的解决方法或建议??谢谢

回复评论 (5)

极有可能是在初始化后,又有其他的地方做了初始~  或者说TOUT3被其它的占用!

如果是流驱动的话,下个调式助手看看
[url=http://www.cnblogs.com/we-hjb/archive/2009/05/17/1458725.html][/url]
-------
系统跑起来后,把DLL拷进去,动态加载,然后看示波器的波形
点赞  2009-8-7 17:34
我检查了一下,是触摸屏驱动里用到了计时器,
发出的PWM波应该是用来调节背光的(99Hz,与LCD背光PWM频率吻合)。

把触摸屏驱动里的设置定时器的语句删掉后,触摸屏工作依然正常。

但是我想问一下为什么触摸屏被触摸的时候要调节背光??
三星的驱动是这么写的,可能有它的用途呢。

点赞  2009-8-8 14:35
用GPB0试试吧,GPB1是不是也引出来做GPIO
点赞  2009-8-8 17:30
可能是防止电源芯片功率突然增加,因为触摸屏也比较耗电的,因此调节一下背光,让背光功率减小一些。
点赞  2009-8-9 10:35
thankssssssssssssss
点赞  2009-8-9 10:36
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复