|
PWM只发了几个周期就没了,定时器不知道咋的被关掉了
[复制链接]
我要用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的启动位清零??这个问题有什么好的解决方法或建议??谢谢
|
|