2020-02-04

2020-02-05  本文已影响0人  等一个人咖啡_2c04

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毫秒

上一篇下一篇

猜你喜欢

热点阅读