因为需要产生一个频率几百赫兹的pwm波,只能用定时器0溢出来提供时基。
但是用系统时钟产生的pwm波没问题,用定时器0溢出产生的pwm波畸形了,不知道为啥
定时器0代码如下,不知道是不是中断的原因,因为关了中断用工作方式2是没问题的,可是工作方式2达不到几百赫兹的频率。。
void Timer0_Init(void)
{
TMOD |= 0x01;//工作方式1,16位
TH0=T_Init/256;
TL0=T_Init%256;
EA=1;
ET0=1;
TR0=1;
}
void Time0(void) interrupt 1 using 0
{
TH0=T_Init/256;
TL0=T_Init%256;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
硬件pwm不是用软件模拟的
一般是把相关数据放进去
然后由硬件去产生pwm波
现在很多单片机都自带硬件pwm输出
可以解决你的问题
一周热门 更多>