完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
stc12c5a60s2的外部中断 为什么会执行两次外部中断函数???
void Int0_interrupt() interrupt 0 { LED = ~LED; while(Direction_Middle == 0); } 当外部中断触发,LED翻转。等待Direction_Middle == 1时,不是应该跳出中断函数吗? 而现实情况是等到Direction_Middle == 1后,LED再次翻转。这不就是外部中断一次,执行了两次外部中断函数?? 测试程序 #include "stc12c5a60s2.h" ***it LED = P2^3; ***it KEY2 = P2^0; void main() { IT0 = 1; EX0 = 1; EA = 1; LED = 1; while(1); } void INTO_interrupt(void) interrupt 0 { LED = ~LED; while(KEY2 == 1); } 现象:按下KEY1触发外部中断,灯翻转。按下KEY2,灯也跟着翻转,这是为什么?而且有时有翻转有时没有。 |
|
相关推荐
9个回答
|
|
你需要确定是你所说的情况进了两次中断,还是你的中断触发信号有两次,需要看你的电路还有中断的设置
|
|
|
|
只启用了外部中断0和1,可以确定只触发了其中一个,也可以确定只触发了一次。所以就是奇了怪。 |
|
|
|
|
|
你使用外部中断,中断函数里面都不需要while了
|
|
|
|
我做智能小车,外部中断函数中的while是为了使小车转到一定的位置。所以需要使用while |
|
|
|
|
|
|
|
|
|
|
|
按键需要消抖处理。不消抖容易误触
|
|
|
|
应该是按键的抖动问题,应该在软件上进行消抖。多次进入了中断,因为速度非常快所以你觉得错了。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
515 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
515 浏览 0 评论
780 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1360 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
572 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11760 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 02:28 , Processed in 0.768646 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号