m0_37635022
2017-05-28 07:55
采纳率: 0%
浏览 3.5k

求大神指教!!!中断服务函数里调用延时函数会导致其他中断不能响应吗???

if ((EINT0PEND&=0x1))

{
GPFCON=(GPFCON & ~(0xf<<28))|(0x1<<29)|(0x1<<31);
GPFPUD=(GPFPUD & ~(0xf<<28));
TimerDelay(5);
GPFCON=(GPFCON & ~(0xf<<28));
GPLCON1=(GPLCON1 & ~(0xfU<<24))|(0x1U<<24);
GPLDAT=(GPLDAT & ~(0xfU<<14))|(0x1U<<14);
}

   if ((EINT0PEND&=0x2))

{
GPFCON=(GPFCON & ~(0xf<<28));
GPFPUD=(GPFPUD & ~(0xf<<28));
GPLCON1=(GPLCON1 & ~(0xfU<<24))|(0x1U<<24);
GPLDAT=(GPLDAT & ~(0xfU<<14));
}

写了一个按键中断服务程序,按下key1pwm输出,按下key2关闭pwm输出,在不加延时的时候key2可以关闭key1打开的pwm,但是加了延时之后key2就不起作用了,是因为在中断服务函数中加了延时导致key2无法响应了吗,即是在延时之前清中断也无法响应吗,只能等待key1 的服务函数执行完(延时),才能进入其他的中断服务函数是嘛?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题