没有合适的资源?快使用搜索试试~ 我知道了~
浅谈单片机应用程序架构
5星 · 超过95%的资源 需积分: 9 19 下载量 130 浏览量
2013-01-21
16:32:00
上传
评论
收藏 48KB DOC 举报
温馨提示
试读
11页
这份文档是针对现有单片机的程序架构写法进行总结归纳,个人觉得挺好,就拿出来分享了
资源推荐
资源详情
资源评论
浅谈单片机应用程序架构
对于单片机程序来说,大家都不陌生,但是真正使用架构,考虑架构的恐
怕并不多,随着程序开发的不断增多,本人觉得架构是非常必要的。前不就发
帖与大家一起讨论了一下《谈谈怎样架构你的单片机程序》,发现真正使用架
构的并不都,而且这类书籍基本没有。
本人经过摸索实验,并总结,大致应用程序的架构有三种:
简单的前后台顺序执行程序,这类写法是大多数人使用的方法,不需用思考
程序的具体架构,直接通过执行顺序编写应用程序即可。
时间片轮询法,此方法是介于顺序执行与操作系统之间的一种方法。
操作系统,此法应该是应用程序编写的最高境界。
下面就分别谈谈这三种方法的利弊和适应范围等。。。。。。。。。。。。。
顺序执行法:
这种方法,这应用程序比较简单,实时性,并行性要求不太高的情况下是
不错的方法,程序设计简单,思路比较清晰。但是当应用程序比较复杂的时候,
如果没有一个完整的流程图,恐怕别人很难看懂程序的运行状态,而且随着程
序功能的增加,编写应用程序的工程师的大脑也开始混乱。即不利于升级维护,
也不利于代码优化。本人写个几个比较复杂一点的应用程序,刚开始就是使用
此法,最终虽然能够实现功能,但是自己的思维一直处于混乱状态。导致程序
一直不能让自己满意。
这种方法大多数人都会采用,而且我们接受的教育也基本都是使用此法。
对于我们这些基本没有学习过数据结构,程序架构的单片机工程师来说,无疑
很难在应用程序的设计上有一个很大的提高,也导致了不同工程师编写的应用
程序很难相互利于和学习。
本人建议,如果喜欢使用此法的网友,如果编写比较复杂的应用程序,一
定要先理清头脑,设计好完整的流程图再编写程序,否则后果很严重。当然应
该程序本身很简单,此法还是一个非常必须的选择。
下面就写一个顺序执行的程序模型,方面和下面两种方法对比:
复制内容到剪贴板
代码
主函数
!
"
#$%
&'%初始化
()
"
*$+$%
$,*$-'%
()$
"
.*$'%/$%
!0/$%
1
1
1
时间片轮询法
时间片轮询法,在很多书籍中有提到,而且有很多时候都是与操作系统一
起出现,也就是说很多时候是操作系统中使用了这一方法。不过我们这里要说
的这个时间片轮询法并不是挂在操作系统下,而是在前后台程序中使用此法。
也是本贴要详细说明和介绍的方法。
对于时间片轮询法,虽然有不少书籍都有介绍,但大多说得并不系统,只
是提提概念而已。下面本人将详细介绍本人模式,并参考别人的代码建立的一
个时间片轮询架构程序的方法,我想将给初学者有一定的借鉴性。
记得在前不久本人发帖《 个定时器多处复用的问题》,由于时间的问题,
并没有详细说明怎样实现 个定时器多处复用。在这里我们先介绍一下定时器
的复用功能。。。
使用 个定时器,可以是任意的定时器,这里不做特殊说明,下面假设有 个
任务,那么我们应该做如下工作:
初始化定时器,这里假设定时器的定时中断为 当然你可以改成
2,这个和操作系统一样,中断过于频繁效率就低,中断太长,实时性差。
定义一个数值:
复制内容到剪贴板
代码
3!4*5'-678这里定义的任务数为 ,表示有三
个任务会使用此定时器定时。
9*$+:*5'-678;%这里为三个任务定义三个变量来
存放定时值
#*$8$:*5'-678;%同样对应三个标志位,为 2 表示
时间没到,为 表示定时时间到。
在定时器中断服务函数中添加:
复制内容到剪贴板
代码
*&
定时中断服务函数
!*& !
"
#%
0,2%<*5'-'678%==
"
0*$+:;
"
*$+:;>>%
0*$+:;,,2
剩余10页未读,继续阅读
资源评论
- renfei07302013-06-14真的不错,值得借鉴
linhuan5
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功