SysDelay状态系统应用说明.docx

上传人:p** 文档编号:201894 上传时间:2023-04-16 格式:DOCX 页数:3 大小:29.61KB
下载 相关 举报
SysDelay状态系统应用说明.docx_第1页
第1页 / 共3页
SysDelay状态系统应用说明.docx_第2页
第2页 / 共3页
SysDelay状态系统应用说明.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《SysDelay状态系统应用说明.docx》由会员分享,可在线阅读,更多相关《SysDelay状态系统应用说明.docx(3页珍藏版)》请在第壹文秘上搜索。

1、SysDeIay状态系统应用说明地址:https:一、好处:1、不受系统限制。2、不受硬件平台限制。3、资源占用小(每个线/协程基本功能小于44BYTERAM)。4、功能实用,多个线/协程协同工作CPU利用率最大化。5、具备线/协程定时器(无限扩充)。6、小巧嵌入任何有无系统设备中。7、提供方式目前以静态库*.a方式提供8、技持开发环境GCC,IAR,KElL等一、系统应用框架:1 .线程/协程格式此函数IMS打印一次intAction_Taskl(void*This)延时/信号/状态等待SysStart(This);while(1) SysDelay(This,l,NULL,NULL);pr

2、intf (,This: Action_Taskil- lrn);SysStop(Task);每个线/协程必须有开始每个线/协程必须有等待每个线/协程必须有结束2 .运行条件一个时钟信号一个循环调用void(*SysTimeSystick)(structTaskbj-n*ThisObj);void(*SysTaskLoop)(structTaskbj-n*ThisObj);3 .函数说明int(*SysTaskAdd)(structTaskbj-n*MainThis,Task_t*ThisObj);增加新任务void(*SysTaskLoop)(structTaskObj_n*ThisObj)

3、;循环调度void(*SysTimeSystick)(structTaskObj_n*ThisObj);系统基准时钟long(*SysGetTriggerSingnalMode)(structTaskObj_n*ThisObj);获得触发信号-1为时间触发void(*SysTimerAdd)(structTaskObj_n*ThisObj,Timers_t*uTimers);线程中开启定时器long(*SysGetTimer)(structTaskObj_n*ThisObj,Timers_t*uTimers);线程中获得定时器时间void(*SysTriggerSignal)(structTa

4、skbj-n*ThisOjb,longSingnal);线程中触发信号标志void(*SysTaskStop)(structTaskObj_n*ThisOjb,it(*Action)(void*This),longtim,SysTaskStopMode_emode);柱塞某个线程触发unsignedchar*(*SysGetVer)(structTaskObj_n*ThisObj);void(*CrossthreadingSySTriggerSignal)(Task_t*This,longSingnal);跨线程触发信号标志void(*CrossthreadingSysTaskSleep)(T

5、ask-t*This,longTim);long(*CrossthreadingGetTriggerSignal)(Task-t*This);跨线程获得该线程等待的信号信号标志void(*CrossthreadingTimerStart)(Task-t*This,Timers_t*uTimers);跨线程开启定时察long(*CrossthreadingGetTimer)(Task-t*This,longNum);跨线程获得定时器的值应用举例:Linux模拟#includeSysDelay.h#include#includeSysbj-tSysObjThisl;Task_tTask10;Tim

6、ers-tTasklTimers10;intAction_Taskl(void*This)SysStart(This);TasklTimers0.TimerMode=TimerUP-E;TasklTimers0.Timer=0;SysObjThis-SysTimerAdd(This,STasklTimers0);while(1)SysDelay(This,1000,1,NULL);printf(,ThiszAction-Taskil-lrn,);printf(Timers0:%ld,SysObjThis-SysGetTimer(This,STasklTimers0);)SysStop(Task

7、);)intAction_Task2(void*This)SysStart(This);while(1)SysDelay(This,1000,1,NULL);printf(ThiszAction-Taski2-lrn,);SysDelay(This,2000,1,NULL);printf(This:Action_Taski2-2rn);)SysStop(Task);)voidalarm_handle(intsig)SysobjThisosysTimeSystick(SysObjThis);单片机中此函数由定时器调用)voidset-time(void)structitimervalitv;it

8、v.it_interval.tv-sec=0;itv.it_interval.tv_usec=l;自动装载微值itv.it_value.tv_sec=0;itv.it_value.tv_usec=l;启动值1微秒Setitimer(ITIMER_REAL,&itv,NULL);)intmain()CreateSysObj(SysObjThis);Task.Action=Action_Taskl;SysbjThis-SySTaskAdd(SysObjThis,&Task0);Taskl.Action=Action-Task2;Sys0bjThis-SysTaskAdd(Sys0bjThis,8Taskl);signal(SIGALRM,alarm_handle);set_time();while(l)SysbjThis-SySTaskLoop(SysObjThis);循环调用)return0;)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > CSS/Script

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!