单片机程序结构.pptx
《单片机程序结构.pptx》由会员分享,可在线阅读,更多相关《单片机程序结构.pptx(18页珍藏版)》请在课桌文档上搜索。
1、单片机程序结构,单片机程序结构,单片机程序结构,void main()sysinit();moduleInit();while(1)if(!ADTimer)ADTimer=500;处理AD数据;if(!KeyTimer)KeyTimer=10;扫描按键;,if(!LEDTimer)LEDTimer=2;扫描LED;if(hp!=rp)处理串行接口数据;,单片机程序结构,void SysTick_Handler()if(ADTimer)ADTimer-;if(KeyTimer)KeyTimer-;if(LEDTimer)LEDTimer-;,时间片轮询法架构,1.设计一个结构体:/任务结构typ
2、edef struct _TASK_COMPONENTSuint8Run;/程序运行标记:0-不运行,1运行uint8Timer;/计时器uint8ItvTime;/任务运行间隔时间void(*TaskHook)(void);/要运行的任务函数TASK_COMPONENTS;,时间片轮询法架构,2.任务运行标志出来,此函数就相当于中断服务函数,需要在定时器的中断服务函数中调用此函数,这里独立出来,并于移植和理解。voidTaskRemarks(void)uint8i;for(i=0;iTask_Max;i+)/逐个任务时间处理if(TaskCompsi.Timer)/时间不为0TaskComp
3、si.Timer-;/减去一个节拍if(TaskCompsi.Timer=0)/时间减完了TaskCompsi.Timer=TaskCompsi.ItvTime;/恢复计时器值TaskCompsi.Run=1;/任务可以运行,时间片轮询法架构,3.任务处理,主程序中调用voidTaskProcess(void)uint8i;for(i=0;iTASKS_MAX;i+)/逐个任务时间处理if(TaskCompsi.Run)/时间不为0TaskCompsi.TaskHook();/运行任务TaskCompsi.Run=0;/标志清0,时间片轮询法架构,4.应用建立任务staticTASK_COMP
4、ONENTSTaskComps=0,1000,1000,TaskDisplayClock,/显示时钟0,10,10,TaskKeyScan,/按键扫描0,5,5,TaskLedScan,/动态刷新LED/可以继续添加任务。;,时间片轮询法架构,4.应用编写各个任务函数void TaskDisplayClock()void TaskKeySan()void TaskLedScan(),时间片轮询法架构,4.应用编写主函数void main(void)InitSys();/初始化while(1)TaskProcess();/任务处理,按键扫描程序,unsigned char read_key(vo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 程序结构
![提示](https://www.desk33.com/images/bang_tan.gif)
链接地址:https://www.desk33.com/p-351279.html