标签: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