为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下在延时函数里能不能等待中断啊?为什么不能?

请问一下在延时函数里能不能等待中断啊?为什么不能?

慕盖茨4494581 2022-01-06 11:07:17
void t0int() interrupt 1 //(location at 000BH) //只负责输出PWM波 { //10微秒@24.000MHzLen++;if(Len==SdLen){SPK=~SPK; Len=0; } }void Display(uchar Play) //play是要播放的音符(数字表示),且控制PWM波长{SdLen=Length[Play]; //取定应有的PWM波长度P1=WEI[Play]^P1; //让P0对应的灯点亮TR0 = 1; //定时器0开始计时ET0 = 1; //开T0中断Delay500ms(); //延时等待定时器中断 //Display作为定时器0产生PWM波的入口ET0 = 0; //关定时器0即停止PWM波输出,控制长度P1=WEI[Play]^P1; //熄灭 }定时器初值已在前面主函数配置好,本意是输出PWM波,但是仿真结果只有上升沿和下降沿,是Delay里不能进行中断程序么?
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

中断程序执行的时间可能比Delay函数的时间要长,所以不执行。

查看完整回答
反对 回复 2022-01-09
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

中断函数是函数中断不再执行,延时函数是过一定时间后,函数继续执行。

查看完整回答
反对 回复 2022-01-09
  • 2 回答
  • 0 关注
  • 250 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信