完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
谁有比较实用的单片机裸编程序架构或者思想,或者推荐书籍资料,在此感激不尽?????
我先说说我的思路,抛砖引玉: 思路一: void main(void) { /*初始化*/ Init(); while(1) { TASK1(); TASK2(); ......... CLEAR_WDT(); } } 思路二: void main(void) { /*初始化*/ Init(); while(1) { if(state==0) { task0(); } else if(state==1) { task1(); } else if(state==2) { task2(); } ...... } } voidtask0(void) { /..定义变量../ /..初始状态../ while(1) { //dosomethings if(state==0) return; } } voidtask1(void) { /..定义变量../ /..初始状态../ while(1) { //dosomethings if(state==1) return; } } voidtask2(void) { /..定义变量../ /..初始状态../ while(1) { //dosomethings if(state==2) return; } } |
|
相关推荐
7个回答
|
|
你说的是这种架构吧:
voidmain(void) { /*初始化*/ while(1) { if(delay_task>=time1) { task1(); } if(delay_task>=time2) { task2(); } if(delay_task>=time3) { task3(); } } } |
|
|
|
|
|
|
|
谢谢分享。。。
|
|
|
|
明白了,没有软件延时嘛,我现在在改造以前的一个程序,遇到问题我再请教您!
|
|
|
|
也有状态机的裸奔程序。
|
|
|
|
我一直用前后台系统
|
|
|
|
现在回过头来看看自己写的代码,也说下自己的最近几年一直用的编程思路,希望能够帮助像当年的自己一样迷茫且热爱技术的人:
1、业务逻辑代码全状态机开发(参考:http://blog.csdn.net/wuhenyouyuyouyu/article/details/73302377); 2、有个简单的协作式内核(参考:http://blog.csdn.net/wuhenyouyuyouyu/article/details/53818948); 3、提供软件定时器服务(参考:http://blog.csdn.net/wuhenyouyuyouyu/article/details/53912098 http://www.openedv.com/forum.php ... id=61297&extra=); 4、提供简单的信号了等同步服务(网上很多,自己度年吧); 5、系统层次方面,运用面向对象、基于接口编程,使用设计模式等,使自己的代码模块化设计; |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2956 浏览 16 评论
3458 浏览 1 评论
9000 浏览 16 评论
4051 浏览 18 评论
1110浏览 3评论
572浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2302浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1859浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 15:49 , Processed in 1.542861 second(s), Total 90, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号