51单片机pwm波形频率问题

控制直流200hz,5ms翻转一次,那么是不是进入中断执行时间也要等于5ms?这样频率才规则呢?12mhz的晶振 ,我里面占空比是100可是我算了一下,一行代码1us.100次也才100us左右,跟翻转时的电平持续时间不相等啊,不知这样是否可行?还是需要调节成一样5ms?还是我理解错了?

很多单片机带pwm模块,可以出很工整的pwm波,非用定时器做也可以,比较耗资源.
定时器做pwm好处是任意的io都可以输出且没有通道个数的限制.
定时器用作pwm你需要两个中断,一个是pwm周期中断(所有通道置低),一个是pwm的开关点中断(置高电平).
有些单片机还是难以实现一个定时器两种中断,另一个做法是每个开关点都中断,这里的开关点指的是每个pwm周期可能的开关位置,其数量和你的pwm调控精度有关.这样pwm周期点自然是个特殊的开关点.这个方法频率高时开销大而且由于中断服务的延时可能造成波形不稳定.
大体思路就是这样.

找个有pwm模块的单片机实现,从信号质量资源开销上都是最理想的.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-11
许多微控制器,PWM模块的非常整齐的PWM波与非定时器做的,比较耗资源
定时器做的IO输出的PWM利益,不限制数量的PWM定时器,你需要两个中断,中断PWM周期(所有通道设置),中断是PWM开关点(设置高)
另一个尴尬的是一个开关点中断的每个PWM周期可切换开关点的位置,你PWM调节精度。 PWM周期的角度,自然是一个特殊的开关点。高频率的发方法的开销和延迟,中断服务时可能的波形不稳定。
总体思路是这样的。本回答被提问者和网友采纳