找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1274|回复: 2
收起左侧

单片机软件延时产生PWM波的程序问题 外部中断来改变占空比

[复制链接]
ID:526819 发表于 2019-5-24 15:36 | 显示全部楼层 |阅读模式
自己写了一个关于用软件延时产生PWM波的程序。通过外部中断来改变占空比
由于T0和T1用到别的地方了,所以只能用延时函数。我仿真之后,先加速了,按减速键,直接减到占空比为0,全是低电平,这是哪儿的问题啊
7EU[XVE441JUQZN7[8Q$~`K.png

单片机源程序如下:
#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;  
   }
}

回复

使用道具 举报

ID:526819 发表于 2019-5-24 19:12 | 显示全部楼层
找到原因了
回复

使用道具 举报

ID:250151 发表于 2019-6-5 20:41 | 显示全部楼层

啥原因啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表