完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
有哪位朋友能告诉我,我下面这段程序为什么实现不了预想的要求。 我的想法是,主程序的while循环就等待中断的发生。一旦中断发生就跳出循环。但实际情况不是这样。敬请高人指点。 char show = 0; //是否发生中断标志字 void setup() // { attachInterrupt(0, int0_isr, FALLING); Serial.begin(9600); } void int0_isr() //中断服务程序 { show = 1; //发生了中断 Serial.print("Show = "); Serial.println(show,DEC); } void loop() //主程序 { while(show == 0) //无限循环,等待中断发生 { ; } Serial.println("Interrupt!");//报告发生中断 show = 0; //关闭中断发生标志 } |
|
相关推荐
3个回答
|
|
检测show这个值的变化,现在你的这个程序跑起来是什么现象呢?
|
|
|
|
按程序字面上的意思,while 循环等待中断的发生,在中断服务函数内,设置全局变量show。一旦show等于1,while 跳出循环执行后面的语句。实际情况是程序跑起来后,死了。
|
|
|
|
补充说明,程序的硬件搭建是在引脚2,也就是外部中断的引脚接一按键,并配上拉电阻。平时是高电平,按键按下后,变低电平,引发中断。中断部分工作正常。
|
|
|
|
只有小组成员才能发言,加入小组>>
WIO Terminal +MCP2515 实现车辆OBD的速度监控
10420 浏览 0 评论
60659 浏览 77 评论
6003 浏览 3 评论
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
36963 浏览 219 评论
10059 浏览 0 评论
536浏览 1评论
请教:esp32中用u8g2显示shtc3传感器数据到i2c液晶屏,显示不稳定的问题
1311浏览 1评论
1453浏览 1评论
656浏览 0评论
576浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 20:40 , Processed in 0.718031 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号