`
cloudtech
  • 浏览: 4611202 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

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;
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics