标题: 单片机软件延时产生PWM波的程序问题 外部中断来改变占空比 [打印本页]

作者: 1404310189    时间: 2019-5-24 15:36
标题: 单片机软件延时产生PWM波的程序问题 外部中断来改变占空比
自己写了一个关于用软件延时产生PWM波的程序。通过外部中断来改变占空比
由于T0和T1用到别的地方了,所以只能用延时函数。我仿真之后,先加速了,按减速键,直接减到占空比为0,全是低电平,这是哪儿的问题啊


单片机源程序如下:
#include <REGX52.H>
unsigned int m=50,n=50;  //
sbit pwm=P1^3;
sbit k1=P3^2;
sbit k2=P3^3;

void delayus(unsigned int x)//延时,x=1大概为10微秒
{
while(x--);
}
void Int0Init()  //INT0
{

IT0=1;//????????????????????
EX0=1;//??INT0???ж??????
EA=1;//?????ж?
}
void Int1Init()   //INT1
{
Int0Init();
Int1Init();
IT1=1;//????????????????????
EX1=1;//??INT1???ж??????
EA=1;//?????ж?
void jiasu() interrupt 0  //加速
{
delay(1000);
   if(k1==0)
   {
     m=m+10;
  n=n-10;
}
}
void jiansu() interrupt 2  //减速
{
    delay(1000);
   if(k2==0)
{
    m=m-10;
    n=n-10;
}
}

void main(){

while(1)
{
   pwm=1;
   delayus(m);
   pwm=0;
   delayus(n); //n+m=100us
   
  }   
   while((m>100)||(n<0))
   {
    m=50;
   n=50;  
   }
}


作者: 1404310189    时间: 2019-5-24 19:12
找到原因了
作者: AstronautZ    时间: 2019-6-5 20:41
1404310189 发表于 2019-5-24 19:12
找到原因了

啥原因啊




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1