设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2951|回复: 2
打印 上一主题 下一主题

新人请教定时器hander问题

[复制链接]

1

主题

3

帖子

48

积分

新手上路

Rank: 1

积分
48
跳转到指定楼层
楼主
wylng 发表于 2017-5-16 18:11:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 wylng 于 2017-5-16 18:13 编辑

我做界面的, 对硬件, 驱动了解不多

我设置了定时器查询按键状态, 如果有用户按键, handler里对界面直接处理, 比如释放掉内存, 回到第一个界面。
问题是定时器是中断, 中断处理会保存上次程序运行的pc指针, 中断处理好之后会返回上次指令的下调指令, 这时我使用中断处理程序释放掉的内存, 程序会崩溃掉.
会不会发生这种冲突呢, 中断可以在程序执行任何位置发生.
是不是只能判断用户按键后,设置个全局变量, 等main里的主循环判断按键这个全局变量, 然后做相应处理?

多谢


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

243

主题

1706

帖子

6151

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6151
板凳
admin 发表于 2017-5-19 22:09:25 | 只看该作者
wylng 发表于 2017-5-18 11:14
经试验, handler直接处理事务容易出错, 我故意把刷屏时间延长, 就是连续刷屏100次, 刷屏的同时按键,  ...

你按键的话 加一个判断管脚状态去抖
回复 支持 反对

使用道具 举报

1

主题

3

帖子

48

积分

新手上路

Rank: 1

积分
48
沙发
 楼主| wylng 发表于 2017-5-18 11:14:32 | 只看该作者
经试验, handler直接处理事务容易出错, 我故意把刷屏时间延长, 就是连续刷屏100次, 刷屏的同时按键, 按键后进入一个菜单, 要更新屏幕, 但是中断之前已经更新一半, 中断处理程序接着更新屏幕, 屏幕会花掉。
如果是中断处理程序在不断刷屏, 刷屏过程中按键, 则无响应, 应该是正在处理中断时, 中断被屏蔽了。
所以中断处理程序尽量简单, 比如只能设置标志, 等main里主循环来统一依次处理
回复 支持 反对

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2024-6-27 00:08 , Processed in 0.154428 second(s), 29 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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