1. 使能软件定时器
在blt_soft_timer.h中,将BLT_SOFTWARE_TIMER_ENABLE定义为1
#ifndef BLT_SOFTWARE_TIMER_ENABLE
#define BLT_SOFTWARE_TIMER_ENABLE 1//0 //enable or disable
#endif
默认情况下,最大的可以创建的时钟个数为4
#define MAX_TIMER_NUM 4 //timer max number
2. 在tl_commom.h中添加头文件
#include "vendor/common/blt_soft_timer.h"
3.在主函数中调用以下函数
4.1 定时器初始化函数blt_soft_timer_init();
4.2 添加的定时器事件blt_soft_timer_add(led_event,500000);
4.3 添加周期处理函数blt_soft_timer_process(MAINLOOP_ENTRY);MAINLOOP_ENTRY默认定义为0,不要去修改
_attribute_ram_code_ int main (void) //must run in ramcode
{
blt_soft_timer_init();
key_init();
led_init();
blt_soft_timer_add(key_event,10000);//10ms
blt_soft_timer_add(led_event,500000);//500ms
while (1) {
main_loop ();
blt_soft_timer_process(MAINLOOP_ENTRY);//增加周期处理
}
}
在添加blt_soft_timer_add(led_event,500000);//500ms任务时;如果返回值写的是return 1,LED闪烁异常,这问题挺奇怪的,我也不知道原因。
int led_event(void)
{
#if 1
static u8 temp = 0;
temp++;
if(temp % 4 == 0)
{
gpio_toggle(LED1);
}
if(temp % 4 == 1)
{
gpio_toggle(LED2);
}
if(temp % 4 == 2)
{
gpio_toggle(LED3);
}
if(temp % 4 == 3)
{
gpio_toggle(LED4);
}
#endif
return 0;//这里如果返回1,led灯不会每隔500ms闪烁
}