新手请教:单片机控制多个任务时如何响应????

mafu520520 2007-05-23 06:49:53
各位大虾:
我是个单片机新手,现在基本上能做一些小小的单任务程序,现请教各位,如何才能实现多任务?比如说,我现在要通过9个按键分别控制9个任务,还要同时响应外部的其它中断。当有不同的按键按下时,它能够马上转到其功能代码去。
我以前用汇编写过一个音乐播放器,编了6首歌,分别用1~6键去控制,然后LCD分别显示其歌名。但是有一个问题就是我每放一首歌期间或放完后,必须复位,其它按键才能有功能。
各位在实现多任务时有些什么技巧?能不能将流程或者说思路详细告之,最好是能发一个带详细注释的源代码。不胜感谢。
...全文
343 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
numbbb 2007-05-25
  • 打赏
  • 举报
回复
最简单有效的方法就是写中断服务程序,在中断服务程序里判断工作状态。

9个按键用一个中断来响应,中断服务程序查询9个按键状态状态来决定处理那个键。
mafu520520 2007-05-25
  • 打赏
  • 举报
回复
我觉得各位可能不是很清楚我问的问题。其实你们的答复对于我帮助不大,不过还是非常感谢各位能够积极的回复。
楼上那位应该是单片机高手了,我很赞同你的观点,我也明白像这些情况就是要合理的去安排程序执行的数据流程,只是不知道怎样去做!顺便说一下我是用C编程!
nxy825715 2007-05-25
  • 打赏
  • 举报
回复
个人见解:
楼主现在没有必要看uC/OS-II,倒是认真的看看C语言。
像楼主这么点任务,就想用OS来解决!一个switch就可以搞定了。
我们有时候的hex文件接近64K了,都没有使用OS,关键是你自己怎么合理的安排程序执行的数据流程。
yangb2014# 2007-05-25
  • 打赏
  • 举报
回复
找本uC/OS-II的书看看?
Great_Bug 2007-05-24
  • 打赏
  • 举报
回复
找本uC/OS-II的书看看?
esprite2000 2007-05-24
  • 打赏
  • 举报
回复
按键最好还是用中断吧
mafu520520 2007-05-24
  • 打赏
  • 举报
回复
那我想用实时系统实现虚拟多任务时,我怎么样去把握这些时间段?
比如说,我用键盘扫描,当有键按下时去执行对应的功能,假如我的那个功能还没有执行完,我又按了键,那它怎么样去识别?或者这么说,我怎样才能知道我该隔多久进行一次键盘扫描?是不是我的按键执行功能时间的长短不影响键盘扫描的时间间隔?还是需要利用中断?
望能详细告之!!谢谢!!!
esprite2000 2007-05-24
  • 打赏
  • 举报
回复
使用各类中断,可以近似达到“多任务”的效果,但是真正高效率的多任务还得单片机处理器本身支持才行
shen_guang_wu 2007-05-24
  • 打赏
  • 举报
回复
单片机内核决定了只能是单任务,如果使用实时系统的话,通过时间片可以实现虚拟多任务,不过效率不高。象你这种情况其实,循环扫描按键就可以了

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧