微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > PWM为什么产生不了 作用!急求!

PWM为什么产生不了 作用!急求!

时间:10-02 整理:3721RD 点击:
void time0() interrupt 1
{
     unsigned char i;
     if(i)
     {
         TH0=(65536-pwm)/256;
         TL0=(65536-pwm)%256;
         P10=0;
     }
    if(~i)
    {
        TH0=65536-pwm/256;
        TL0=65536-pwm%256;
         P10=1;
    }
}
我改变pwm的值 为嘛 P1^0口为什么不是矩形波 我用示波器看确实脉冲 怎么回事!

i设为全局变量

仔细看看你写的程序,逻辑错了

void time0() interrupt 1
{
     unsigned char i;
     if(flag==1)
     {
         TH0=(65536-pwm)/256;
         TL0=(65536-pwm)%256;
         P10=0;
         flag=0;//这个是电平的时间
     }
    if(flag==0)
    {
        TH0=pwm/256;
        TL0=pwm%256;
         P10=1;//这个是高电平的时间
         flag=1;
    }
}
是这个 我打错了!我的实验的程序是这个!为什么也不对

有区别吗?   在中断程序,p1.0已经翻转2次了。  T0已经重置了2次了

void time0() interrupt 1
{
     if(flag==1)
     {
         TH0=(65536-pwm)/256;
         TL0=(65536-pwm)%256;
         P10=0;
         flag=0;//这个是电平的时间
     }
    else
    {
        TH0=pwm/256;
        TL0=pwm%256;
         P10=1;//这个是高电平的时间
         flag=1;
    }
}  
这样应该就对了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top