完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我配置了P04号管脚,接通端子时,进入中断。现在进入了中断,但是之后不再执行main主程序while里面的代码了。求各位帮忙看下是哪里的问题。
代码如下: sbit led = P1^3; bit powerBool; void main (void) { InitialUART0_Timer1(115200); P13_Quasi_Mode; PICON |= 0x40; PIPEN |= 0x10; set_EA; //开启总中断 set_EPI; while(1){ if(powerBool ==0){ printf ("\n if--"); led = 1; Timer0_Delay1ms(500); led = 0; Timer0_Delay1ms(500); led = 1; Timer0_Delay1ms(500); led = 0; }else{ printf ("\n else"); led = 1; } } } void PinInterrupt(void) interrupt 7 { printf ("\n zhongduan++"); if(PIF==0x10){ PIF=0;//清除外部中断标志 if(powerBool==0){ printf ("\n zhongduan -- if --"); powerBool =1; }else{ printf ("\n zhongduan --else--"); powerBool=0; } } } 看打印的日志,在zhongduan -- if --或者zhongduan --else--。然后就不在打印了,按我理解,应该中断执行完后,返回主程序的while循环里面的。 if-- if-- if-- zhongduan++ zhongduan -- if -- zhongduan++ zhongduan --else-- 打印信息如上,我接通或者断开端子的时候,就有打印。证明是有检测到,但是不if---或者else---的打印怎么都不再出现了,就想程序卡主在管脚中断这了 |
|
相关推荐
1个回答
|
|
您的代码中缺少中断服务函数的实现,因此在进入中断后没有返回,导致程序无法执行。您需要添加中断服务函数,并在其中添加相应的处理代码,例如清除中断标志位等。以下是一个简单的例子,其中当P04管脚触发中断时,会使LED闪烁一次。
``` sbit led = P1^3; // LED管脚 bit powerBool; // 是否接通电源的标志位 void main (void) { InitialUART0_Timer1(115200); // 初始化串口 P13_Quasi_Mode; // 将P1.3设为准双向口 PICON |= 0x40; // 设置低电平触发中断 PIF |= 0x10; // 清除P04中断标志位 PINTEN |= 0x10; // 允许P04中断 set_EA; // 开启总中断 powerBool = 0; // 初始状态为未接通电源 while(1) { if(powerBool) { // 如果接通电源 led = 1; // 点亮LED delay_ms(500); led = 0; // 熄灭LED delay_ms(500); } } } // 管脚中断服务函数 void P04_ISR(void) interrupt 6 { PIF |= 0x10; // 清除P04中断标志位 powerBool = !powerBool; // 反转接通电源的标志位 } ``` |
|
|
|
只有小组成员才能发言,加入小组>>
722 浏览 0 评论
1123 浏览 1 评论
2502 浏览 5 评论
2840 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2683 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
664浏览 9评论
679浏览 7评论
682浏览 5评论
665浏览 5评论
imx6dl芯片与imx6q芯片互换启动无反应请问是什么问题呢
280浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 10:28 , Processed in 1.192120 second(s), Total 78, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号