我的目的是用单片机输出PWM加一个RC电路实现简单的DA操作。问题是在主程序中我设置OCR1B的值为变量,PWM就无法实现固定占空比的波形?
用了12M晶振,用了16位的定时器1,设置频率200HZ,代码如下:
void PWM_init(void)
{
TCCR1A=0X63;//设置成快速PWM
TCCR1B=0X1D; //希望的到频率为200HZ的PWM 1024分频 0.05s
OCR1A=59;
OCR1B=30;
}
viod main
{
OCR1B=data;//data是<59的随机数。
}
可试了很多次都不行,望高手解惑。简单来说就是想通过data来控制PWM的占空比。在主程序中直接赋值OCR1B=30,可出现波形,一旦data在主程序变化,就出不来波形了 |