GPIO_KEY例程 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2998|回复: 4

[未解决] GPIO_KEY例程

[复制链接]

44

主题

63

帖子

1296

积分

金牌会员

Rank: 6Rank: 6

积分
1296
发表于 2020-12-16 16:24:16 | 显示全部楼层 |阅读模式
工程师好,刚刚看了这个按键中断控制led灯的裸机例程,因为先前一至在学习基于sysbios的编程,看裸机用中断这个地方不是很理解。为什么在按下按键触发中断进入服务函数后要先禁用中断,然后清除中断状态后再令灯善良的标志为置为1,最后再使能中断,这个禁用清除再使能的操作是什么目的呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
发表于 2020-12-16 18:14:34 | 显示全部楼层
先等中断服务函数执行完,再恢复中断
回复 支持 反对

使用道具 举报

44

主题

63

帖子

1296

积分

金牌会员

Rank: 6Rank: 6

积分
1296
 楼主| 发表于 2020-12-16 21:22:30 | 显示全部楼层
感谢回复,我想问,进入中断服务函数以后,光清除中断标志位不行了吗?为什么还要把中断disable掉呢?不禁止的话会咋样?
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
发表于 2020-12-17 11:47:14 | 显示全部楼层
1、禁用中断是因为裸机程序不支持中断嵌套,防止产生其它中断。
2、清除中断这是为了避免无法区分什么时候产生的中断。
回复 支持 反对

使用道具 举报

44

主题

63

帖子

1296

积分

金牌会员

Rank: 6Rank: 6

积分
1296
 楼主| 发表于 2020-12-17 21:24:09 | 显示全部楼层
好的,感谢回复。裸机不支持中断嵌套的话,如果编写的中断服务程序比较长,在执行中断服务函数的时候,又来了一个更高优先级的中断,那么是不是必须等当前这个低优先级的服务函数执行结束以后,才能执行高优先级中断?

还有一个问题,如果只是在中断服务函数里面设置标志位的话,真正想要执行的东西放到主循环里面,那么是不是就不用进入中断服务函数后就禁用中断了。因为只执行标志位的话就会执行很快,然后中断结束后就转到主循环里面去执行对于的功能函数了,这样的话这个中断就马上被释放了,再接收到中断的话就不会存在中断嵌套的问题,所以如果只是在中断服务函数里面设置标志的话,还用禁用中断吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-4-18 15:18 , Processed in 0.038331 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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