标签:tar 返回 \n 获取 failed 状态 return sim 调用
1. 适用范围创建定时器API_TimerCreate函数原型为:
#include <SylixOS.h> LW_OBJECT_HANDLE API_TimerCreate (CPCHAR pcName, ULONG ulOption, LW_OBJECT_ID *pulId);
API_TimerCreate函数原型分析:
函数执行成功返回定时器句柄,执行失败返回0;
参数pcName为定时器名称;
参数ulOption为定时器类型,SylixOS支持告诉定时器和普通定时器;
参数pulId为定时器ID号。
2.2 启动定时器
启动定时器API_TimerStart函数原型为:
#include <SylixOS.h> ULONG API_TimerStart ( LW_OBJECT_HANDLE ulId, ULONG ulCounter, ULONG ulOption, PTIMER_CALLBACK_ROUTINE cbTimerRoutine, PVOID pvArg);
API_TimerStart函数原型分析:
函数执行成功返回ERROR_NONE,执行失败返回错误码;
参数ulId为定时器句柄;
参数ulCounter为重复计数初始值;
参数ulOption为操作选项;
参数cbTimerRoutine为回调函数;
参数pvArg为参数。
2.3 停止定时器
停止定时器API_TimerCancel函数原型为:
#include <SylixOS.h> ULONG API_TimerCancel (LW_OBJECT_HANDLE ulId);
API_TimerCancel函数原型分析:
函数执行成功返回ERROR_NONE,执行失败返回错误码;
参数ulId为定时器句柄。
2.4 删除定时器
删除定时器API_TimerDelete函数原型为:
#include <SylixOS.h> ULONG API_TimerDelete (LW_OBJECT_HANDLE *pulId);
API_TimerDelete函数原型分析:
函数执行成功返回ERROR_NONE,执行失败返回错误码;
参数pulId为定时器句柄。
3. 使用实例
SylixOS下定时器使用实例如程序清单 3.1所示。
程序清单 3.1 定时器实例
#include <stdio.h> #define TIMER_FREQUENCY 100 /* 定时器检测周期 */ static void timerCallBack (void *pvArg) { printf("this is a timer\n"); } Int main (int argc, char **argv) { unsigned long ulRet = -1; timer_t timerFd = 0; timerFd = API_TimerCreate("timer", LW_OPTION_ITIMER | LW_OPTION_OBJECT_LOCAL, LW_NULL); /* 创建定时器 */ if (timerFd == ERROR_NONE) { printf("timer create failed\n"); return (PX_ERROR); } ulRet = API_TimerStart(timerFd, TIMER_FREQUENCY, LW_OPTION_AUTO_RESTART, (PTIMER_CALLBACK_ROUTINE)timerCallBack, LW_NULL); /* 启动定时器 */ if (ulRet != ERROR_NONE) { printf("timer start failed\n"); API_TimerDelete(&timerFd); return (PX_ERROR); } while (1); return (ERROR_NONE); }
在虚拟器上运行程序,结果如程序清单 3.2所示。
程序清单 3.2 运行结果
[root@sylixos:/root]# /apps/testApp/testApp this is a timer this is a timer this is a timer this is a timer this is a timer ...
标签:tar 返回 \n 获取 failed 状态 return sim 调用
原文地址:http://blog.51cto.com/12558126/2141497