怎么实现50HZ的波形?

2020-02-09 11:32发布

我打算用CCP1与TMR2实现50HZ的方波,但是算出来PR2的初值超出了8位,还有其它方法吗?
要求,我这个还要实时检测B口的按键状态,一旦B口某位为低,则会执行相应的程序,但此时50HZ的方波不能停止,也就是一上电就有50HZ的方波,任何操作不影响。

大家能指点一下么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
flyunlimit
1楼-- · 2020-02-11 06:18
不是所有来论坛的人都能打汉字的。比如有的公司电脑就不支持汉字。
不要因为人家用个英文,帮你还帮出错了。
yealien
2楼-- · 2020-02-11 10:49
回复【9楼】stublue
-----------------------------------------------------------------------

怎么会超出8位呢?难道你用的型号没有分频?
中断输出的话,不会影响你其他操作的~~~
如果你的程序连处理中断的那段时间都不允许的话,那你用循环执行也还是要那么多的指令,还是要费时间扫描那段功能程序
----------------------------------------------------
不会吧?你是怎么算的?PWM周期=(PR2+1)*4Tosc*(TMR2的分频值),照这个公式,就算用16分频,算出来不止8位啊?


回复13楼
我确实没有怪6楼的意思,不过在此我向六楼道歉!并多谢你们的帮助。
yealien
3楼-- · 2020-02-11 15:41
回复【9楼】stublue
-----------------------------------------------------------------------

中断输出的话,不会影响你其他操作的~~~
如果你的程序连处理中断的那段时间都不允许的话,那你用循环执行也还是要那么多的指令,还是要费时间扫描那段功能程序
-------------------------------------------------------------------------
比如我采用TMR1中断,并产生波形。在中断期间,单片机肯定会暂停扫描键盘,输出波形,当单片机的TMR1没有中断时,此时刚好有某键按下,肯定会转去执行相应的按键程序(比如驱动马达转动),在执行程序的过程中,此时产生了中断,肯定就会转去执行中断,而此时的相应按键程序就会被停止了(而马达驱动程序就会被停止)。
yealien
4楼-- · 2020-02-11 17:29
 精彩回答 2  元偷偷看……
yealien
5楼-- · 2020-02-11 18:39
仔细算了一下,好象是正确的。

一周热门 更多>