打印
[Atmel]

每天跟我读点资料:轻型网络开发指南(22)

[复制链接]
972|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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);
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6956

帖子

67

粉丝