1、硬件中断定时器
硬件中断定时器比软件定时器要精确,不过硬件中断定时器不能和PWM共用,因为这两个用的是同一个内部硬件定时器。
下面是三个API,分别用来选择定时器来源、设置中断函数,设置定时器周期。
1.1、定时器时钟来源
1.2、设置定时器的中断回调函数
1.3、设置定时器的定时时间
2、代码
//硬件定时器中断回调函数
void HW_Timer_Handler(void)
{
static u8 LED = 0;
LED = !LED; //翻转LED状态
GPIO_OUTPUT_SET(GPIO_ID_PIN(4),LED);
}
void ICACHE_FLASH_ATTR user_init(void) //用户初始化函数
{
//初始化LED,默认不亮
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U,FUNC_GPIO4);
GPIO_OUTPUT_SET(GPIO_ID_PIN(4),1);
hw_timer_init(0,1); //0:FRC时钟源;1:重复定时
hw_timer_set_func(HW_Timer_Handler); //中断函数
hw_timer_arm(500000); //单位:us,500,000us即500ms
//参数小于等于1,677,721us,最大也就1.6秒的样子
}