矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 爱咋咋地了

学51单片机,卡在了中断这一节

[复制链接]
     
发表于 2020-9-29 13:33:59 | 显示全部楼层
中断的时机就是不可控的,所以你要是需要用中断,就要想清楚怎么收拾这个烂摊子,13楼的朋友说的是一种方法。

另外中断也是可以被中断的,新人可能不太好理解,慢慢想。
几乎是一定要避免同一个中断来源的再次中断,否则栈内存早晚被耗尽,就跑飞了。

经验之谈:中断代码执行时间要尽可能的短,几乎不能有IO操作,IO操作都时间太久了。

另外,c语言里,中断里面会修改的全局变量,必须有volatile声明,否则也会出现意想不到的麻烦。
回复 支持 反对

使用道具 举报

     
发表于 2020-10-7 17:52:54 | 显示全部楼层
初学的可以试用下Virtual51
回复 支持 反对

使用道具 举报

     
发表于 2020-10-7 18:30:47 | 显示全部楼层
去年比葫芦画瓢按示例学习,中断串口通信等等一塌糊涂,重新学习买了本书,带视频中断和定时器讲的比书本还详细,100多兆不能上传,给个书名《51单片机 C语言程序设计教程  王云》

补充内容 (2020-10-8 09:29):
见笑了楼主的中断概念过去也看到过楼主的困惑和各位老师的不同方向的解答也受益匪浅堆栈先进后出的工作原理也是在看pc时都看过去年是跟着示例学习对串口对参数设置都很迷惑单片机构造图和工作原理图不同看书才明白
回复 支持 反对

使用道具 举报

     
发表于 2020-10-7 20:28:51 | 显示全部楼层
书看的太多就傻了
回复 支持 反对

使用道具 举报

     
发表于 2020-10-8 10:58:31 | 显示全部楼层
变量不可控啊,你要定义全局变量还是静态变量,或者说定义的变量分开不就好啦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-28 16:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表