MTK使用系统timer


//首先,定义自己的Timer
typedef struct MyTimerItem
{
const int index;//多个timer时使用,在这个例子里是没有用的
int delay;//1000相当于1秒
unsigned char used;//是否被使用,
FuncPtr timerFunc;//执行的函数

int isCircle;//timer是否循环

}MyTimer;

/*
在文件TimerEvents.h里有一个enum,叫做MMI_TIMER_IDS,它存放了所有timer的索引,如果想要使用一个自己的timer,就要在这个enum时加上自己的一项.一般加在后面,即MAX_TIMERS的前一个.

typedef enum
{
// Start for for Keypad based timer.
KEY_TIMER_ID_NONE = 0,
KEY_TIMER_ID0 = 1,
KEY_TIMER_ID1,
KEY_TIMER_ID2,
KEY_TIMER_ID3,

......
中间忽略无数个

MY_TEMER_BASE_ID,
MY_TEMER_END_ID = My_TEMER_BASE_ID + 5,

MAX_TIMERS
} MMI_TIMER_IDS;
*/


my_timer_baseid = MY_TEMER_BASE_ID;


//函数StartTimer和StopTimer在文件Events.c里实现.


static MyTimer mytimer = { 0, 1000, 0, MyTimerHanler, 1 };

//timer处理函数
void MyUpdateTimerHanler()
{
MyTimer * t = &mytimer;

//写下你要的操作

// 使定时器,继续工作, MTK 的定时器执行一次就会关闭
if(t->isCircle)
StartTimer((UINT16)(my_timer_baseid), t->delay, t->timerFunc);
}

//开始计时
int MyUpdateTimerStart()
{
MyTimer * t = &mytimer;

if(!t) return 0;
StartTimer((UINT16)(my_timer_baseid), t->delay, t->timerFunc);
return 0;
}

//关掉timer
int UpdateTimerStop()
{
MyTimer * t = &mytimer;

if(!t) return 0;
StopTimer((UINT16)(my_timer_baseid));

return 0;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值