当前位置:网站首页>外部中断无法进入,删代码再还原就好......记录这个想不到的bug
外部中断无法进入,删代码再还原就好......记录这个想不到的bug
2022-07-02 05:52:00 【不知何人】
51单片机配置外部中断0/1无非就是以下几行代码。
IT0=1; //外部中断0下降沿触发
EX0=1; //允许中断0
IT1=1; //外部中断1下降沿触发
EX1=1;//允许中断1
EA=1; //开启总中断
但是本人调试了一整个晚上,还是无法通过按键(外部中断0/1的按键INT0/INT1)进入外部中断0/1。
最后我把主函数和外部中断0/1中所有的代码都删除,仅留了点灯代码在中断中,然后ctrl+z撤销删除,全部还原后,重新编译,一行代码都没改,但是发现按键(外部中断0/1的按键INT0/INT1)竟然可以触发外部中断了。
这种情况之前遇见过一次,但是不知道问题在哪,第二天改了改就可以用了,今天再次遇到,引起了我的注意。
我猜测是因为在keil中用C,每次编译时C语言优化有一些区别,导致的这种莫名奇妙的bug,如果使用汇编或者加上volatile关键字应该就不会遇见这种情况。
volatile关键字,由于内存访问速度是远不如CPU的,为了加速,在默认情况下,编译器会给你优化,例如本来该从内存单元里面取的数据,for循环取10次,为了方便,会将其优化放到寄存器里面,每次取寄存器即可,不用再一遍一遍的访问内存单元。而则这样的优化在有时候就会出现意想不到的错误。
边栏推荐
- 测试 - 用例篇
- 492.构造矩形
- Common websites for Postgraduates in data mining
- 【論文翻譯】GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond
- 文件包含漏洞(一)
- [paper translation] gcnet: non local networks meet squeeze exception networks and beyond
- 如何写出好代码 — 防御式编程指南
- PHP development and testing WebService (soap) -win
- 来啦~ 使用 EasyExcel 导出时进行数据转换系列新篇章!
- RGB 无限立方体(高级版)
猜你喜欢
Opencv LBP features
5g market trend in 2020
OLED12864 液晶屏
“简单”的无限魔方
How vite is compatible with lower version browsers
Can't the dist packaged by vite be opened directly in the browser
3D 打印机 G 代码命令:完整列表和教程
A collection of commonly used plug-ins for idea development tools
The Hong Kong Stock Exchange learned from US stocks and pushed spac: the follow-up of many PE companies could not hide the embarrassment of the world's worst stock market
深度学习分类网络 -- AlexNet
随机推荐
2022-2-14 learning xiangniuke project - Section 7 account setting
Practice C language advanced address book design
Zzuli:1060 numbers in reverse order
File contains vulnerabilities (II)
Reading notes of cgnf: conditional graph neural fields
死磕大屏UI,FineReport开发日记
软件测试 - 概念篇
1036 Boys vs Girls
460. LFU cache bidirectional linked list
Zzuli:1061 sequential output of digits
500. 键盘行
【論文翻譯】GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond
PHP read file (read the specified line containing a string in the file)
1035 Password
深度学习分类网络--VGGNet
深度学习分类网络--Network in Network
OLED12864 液晶屏
2022-2-14 learning xiangniuke project - section 23, section 5, development login and exit functions
Small and medium-sized projects to achieve certification and authorization of hand filter
vite如何兼容低版本浏览器