底层软件里面前后台系统的一般架构....

wangxj_nemo 2011-08-31 02:44:11
比如有这么个小东西,带按键扫描,LED,SPI LCD,串口通信,各种资源初始化好后进入
for(;;)
{
//1
//2
//3
//4
//...
//...
//Sleep();
}

1,2,3,4等做按键扫描,LCD显示,串口通信等等....Sleep()时间长短视1,2,3,4耗时长短动态调节(靠一个系统时基节拍,比如16.7ms,),不知道这种架构是不是最合理最节能,各位大牛们是怎么在单片机系统中用"架构"这么个高深的词语的,,,,,

...全文
230 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxj_nemo 2011-09-02
  • 打赏
  • 举报
回复
这里考虑的只是前后台系统(裸机)的架构,操作系统的东西不考虑...
wangxj_nemo 2011-09-02
  • 打赏
  • 举报
回复
肯定是要开中断的给通信用的,我想表达的意思是:1,时基概念(相当与操作系统的心跳TICK),比如我的LED闪烁是以16.7MS为时间基准,亮->灭,或者灭->亮的时间是16.7MS的整数倍,如果没有这个概念,一直FOR循环在哪里,每个轮询时间因为本循环要处理的事情多少不一样而花的时间不一样,那么我的LED闪烁就乱了章法,自己以前写的架构就是这样,看过一些别人的也是如此,一直感觉这种架构很烂,一直让芯片负荷时大时小,一圈接一圈拼命的跑,2,另外一个考虑,很多时候不需要一圈接着一圈的去跑,跑完一圈歇一下再跑不是对芯片的寿命更好,,,,,只是自己的瞎琢磨,希望得到各位的指点,也把你们的方法发表出来,这些可都是书上没有的啊...
AnYidan 2011-09-01
  • 打赏
  • 举报
回复
按键 和 通讯 用中断比较好
bjtea 2011-08-31
  • 打赏
  • 举报
回复
这仅是一般主函数中的循环的结构;在做1~4或其它时,还会有一些判断,执行不执行的条件可以由中断来改变。
架构的内容包含更多,涉及到调度,进程、线程的控制,相互关系的处理等等。架构方面的知识,可以看点操作系统方面的书。
zhenghn2010 2011-08-31
  • 打赏
  • 举报
回复
中断处理还是比较好一些, 扫描处理,可控性适时性不强,如果真有个数据突发集中处理的,可能无能为力,或者有严重延时和不确定性。

中断处理可以及时处理,但要注意保护和其他数据的冲突。

一个好的系统,往往根据不同任务需要,多种方式结合起来。中断处理叫适时的,查询处理可延时的。。。
wangxj_nemo 2011-08-31
  • 打赏
  • 举报
回复
可以有中断.
zhenghn2010 2011-08-31
  • 打赏
  • 举报
回复
可以进行中断处理吗?这样扫描,有可能丢数据 对于一些适时信息

27,382

社区成员

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

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