5.9 系统服务 5.9.1 初使化和任务调度 在任何轻型网络API使用之前系统必须被初使化。初使化使用SYS_Init()函数。这个函数也执行低级硬件初使化,所惟推荐尽早在应用程序中调中此函数。 轻量级网络使用协同多任务处理;为了运行内部任务中的堆栈,应用程序必须调用SYS_TaskHandler()函数,而且尽量经常调用。通常这个应在主函数”while(1)”循环中调用。 典型的使用SYS_init()和SYS_TaskHandler()函数例子: int main(void) { SYS_Init(); while (1) { SYS_TaskHandler(); } } 5.9.2 软件时间 轻型网络系统环境提供支持软件时间。软件时间建立在低纸硬件之上(它们都运行在一个简单的硬件定时器)并且应用可以从任何软件时间数开始。一个软件时间由SYS_Timer_t 数据结构描述的。数据结构的字段由下表描述. 间隔:以毫秒为单位的定时器间隔 模式:定时器操作模式。下列之一: 。SYS_TIMER_INTERVAL_MODE-在间隔毫秒后时间处理被调一次 。SYS_TIMER_PERIODIC_MODE-在间隔毫秒后时间处理循环执行直到应用程序停止它。 处理:时间事个把处理。这个函数应有这样的原型”void handler(SYS_Timer_t *timer)”
软件定时器应用函数有以下几个函数: 。SYS_TimerStart() - 开始一个定时器 。SYS_TimerStop() - 停止一个定时器 。SYS_TimerStarted() - 检查是否时间开始 使用软件定时器例子: static SYS_Timer_t appTimer; static void appTimerHandler(SYS_Timer_t *timer) { // handle timer event If (timeToStop) SYS_TimerStop(timer); } static void startTimer(void) { appTimer.interval = 1000; appTimer.mode = SYS_TIMER_PERIODIC_MODE; appTimer.handler = appTimerHandler; SYS_TimerStart(&appTimer); }
|