ESP8266开发硬件定时器(比软件定时器更精确)
• 如果使⽤用 NMI 中断源,且为⾃自动填装的定时器,调⽤用 hw_timer_arm 时参数 val 必须⼤大于 100
•
如果使⽤用 NMI 中断源,那么该定时器将为最⾼高优先级,可打断其他 ISR
•
如果使⽤用 FRC1 中断源,那么该定时器⽆无法打断其他 ISR
•
hw_timer.c 的接⼝口不能跟 PWM 驱动接⼝口函数同时使⽤用,因为⼆二者共⽤用了同⼀一个硬件定时器
初始化硬件 ISR 定时器
hw_timer_init(FRC1_SOURCE,1)
FRC1_SOURCE, 使⽤用 FRC1 中断源
NMI_SOURCE, 使⽤用 NMI 中断源
0, 不⾃自动填装
1, ⾃自动填装
设置定时器回调函数。使用定时器,必须设置回调函数。
hw_timer_set_func (test_kee )
void test_kee (void) //回调函数
{
os_printf("重复打印\r\n") //串口打印 重复打印
}
使能硬件中断定时器
hw_timer_arm(500*100)
总结一下定时的范围:软件定时器定时范围:
如未调⽤用 system_timer_reinit,最⼤大可输⼊16777215毫秒
如调⽤用了 system_timer_reinit,最⼤大可输⼊入 235540毫秒
微秒定时器:
定时时间,单位:微秒,最⼩小定时 0x64 ,最⼤大可输⼊入 0xFFFFFFF
硬件定时器范围:
⾃自动填装模式:
使⽤用 FRC1 中断源(FRC1_SOURCE),取值范围 : 50 ~ 0x7fffff; 单位微秒
使⽤用 NMI 中断源(NMI_SOURCE),取值范围 : 100 ~ 0x7fffff;
⾮非⾃自动填装模式,取值范围 : 10 ~ 0x7fffff;
最多定时1677毫秒
网友评论