在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
#include "vendor/common/blt_soft_timer.h"
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闪烁
- }