Tlsr8258开发-添加软件定时器

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闪烁
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

入门->放弃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值