» 您尚未 登录   注册 | 搜索 | 社区服务 | 帮助 | 无图版 | 左右分栏


AVR与虚拟仪器论坛 AVRVi.com -> AVR单片机论坛(主坛) -> 请教键盘中断的操作
 XML   RSS 2.0   WAP 

AVRVI的淘宝店 字符叠加器/OSD模块 济南恩易电子科技有限公司 物联网利器

--> 本页主题: 请教键盘中断的操作 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题
jtiaao





级别: 侠客
精华: 0
发帖: 14
威望: 15 点
金钱: 260 VI
贡献值: 0 点
技术积分: 0 点
在线时间:1(小时)
注册时间:2008-07-25
最后登录:2009-08-27
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子

请教键盘中断的操作

我需要用mega16运行两部分的程序。一部分是进入键盘的程序,进行按键操作。另一部分是控制电机转动的。请问有什么好的方式或思路在二者间切换吗?大部分时间通常是控制电机转动,若需调整我就要进行按键操作,此时应该怎么办啊?恳请高手的回复,谢谢!
物联网利器——嵌入式网络远程控制器(WebIO)
[楼 主] | Posted: 10-01 23:53 顶端
jnrxg



级别: 骑士
精华: 1
发帖: 50
威望: 53 点
金钱: 640 VI
贡献值: 0 点
技术积分: 3 点
在线时间:45(小时)
注册时间:2008-09-20
最后登录:2010-05-21
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



设一个全局变量,用定时中断扫描按健,按下时变量加1,不按下时清0,超过某一值时控制电机并清0变量,这某一值要大过20ms/定时中断时间才可以防抖。
RS232转CAN CAN转RS232 模块
[1 楼] | Posted: 10-02 14:25 顶端
jtiaao





级别: 侠客
精华: 0
发帖: 14
威望: 15 点
金钱: 260 VI
贡献值: 0 点
技术积分: 0 点
在线时间:1(小时)
注册时间:2008-07-25
最后登录:2009-08-27
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



多谢指点,但我一旦进入了键盘扫描的程序,就进入了一个while(1)的反复循环过程了,怎么可以退出来啊?我是新手,问题比较外行,不要见笑。
学习开发利器:AVRmega128开发板,AVR仿真器,AVR编程器,AVR核心板四合一,仅需498元
[2 楼] | Posted: 10-02 14:39 顶端
jnrxg



级别: 骑士
精华: 1
发帖: 50
威望: 53 点
金钱: 640 VI
贡献值: 0 点
技术积分: 3 点
在线时间:45(小时)
注册时间:2008-09-20
最后登录:2010-05-21
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



用break语句就行了
物联网利器——嵌入式网络远程控制器(WebIO)
[3 楼] | Posted: 10-02 15:56 顶端
jtiaao





级别: 侠客
精华: 0
发帖: 14
威望: 15 点
金钱: 260 VI
贡献值: 0 点
技术积分: 0 点
在线时间:1(小时)
注册时间:2008-07-25
最后登录:2009-08-27
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



我可不可以设置一个键,接上INT0(设置为下降沿中断)和INT1(设置为上升沿中断)两个引脚,如果这个键从高电平按到低电平就通过INT0产生一个中断进入键盘扫描,如果我不想再对其他键进行操作了,再将这个键恢复回去,就通过INT1产生一个中断进入电机程序,可以吗?
学习开发利器:AVRmega128开发板,AVR仿真器,AVR编程器,AVR核心板四合一,仅需498元
[4 楼] | Posted: 10-02 16:21 顶端
jnrxg



级别: 骑士
精华: 1
发帖: 50
威望: 53 点
金钱: 640 VI
贡献值: 0 点
技术积分: 3 点
在线时间:45(小时)
注册时间:2008-09-20
最后登录:2010-05-21
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



可以,不过防抖难做些
RS232转CAN CAN转RS232 模块
[5 楼] | Posted: 10-02 16:37 顶端
lvben5d

特殊贡献奖 原创先锋奖 新人进步奖

级别: 精灵王
精华: 3
发帖: 361
威望: 29 点
金钱: 5190 VI
贡献值: 0 点
技术积分: 9 点
在线时间:188(小时)
注册时间:1970-01-01
最后登录:2011-11-04
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



用INT1或INT0作为总开关,INT0可作为开始启动程序的按扭,INT1做为暂停程序按扭.假如你的电机和按键共用同一引脚的话,那么可以弄个总开关之类的来进入你想要的控制状态:如启动电机 或 关闭电机进入键盘扫描子程序.一切的前提是你是否允许 启动 或 关闭电机进入键盘子程序. 进了INT1后, 可以等待INT0中断 表示继续让电机运动,也可以等待按键中断.
学习开发利器:AVRmega128开发板,AVR仿真器,AVR编程器,AVR核心板四合一,仅需498元

if (can be replaceed){支持国产。从简单的应用取代外国产品。}
else .....
[6 楼] | Posted: 10-03 10:03 顶端
jnrxg



级别: 骑士
精华: 1
发帖: 50
威望: 53 点
金钱: 640 VI
贡献值: 0 点
技术积分: 3 点
在线时间:45(小时)
注册时间:2008-09-20
最后登录:2010-05-21
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



我做了一个程序,是多任务式的:
http://bbs.avrvi.com/read-htm-tid-11020.html

AVRmega128开发板,AVR仿真器,AVR编程器,AVR核心板四合一,仅需498元
[7 楼] | Posted: 10-03 19:55 顶端
jtiaao





级别: 侠客
精华: 0
发帖: 14
威望: 15 点
金钱: 260 VI
贡献值: 0 点
技术积分: 0 点
在线时间:1(小时)
注册时间:2008-07-25
最后登录:2009-08-27
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



呵呵,多谢前辈!
物联网利器——嵌入式网络远程控制器(WebIO)
[8 楼] | Posted: 10-04 00:21 顶端
jtiaao





级别: 侠客
精华: 0
发帖: 14
威望: 15 点
金钱: 260 VI
贡献值: 0 点
技术积分: 0 点
在线时间:1(小时)
注册时间:2008-07-25
最后登录:2009-08-27
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



呵呵,多谢前辈!
RS232转CAN CAN转RS232 模块
[9 楼] | Posted: 10-04 00:22 顶端

AVR与虚拟仪器论坛 AVRVi.com -> AVR单片机论坛(主坛)