ESP8266-SDK的硬件定時器


ESP8266的硬件定時器的使用也比較簡單

1、設置定時器的時鍾源和自動重裝載

hw_timer_init(FRC1_SOURCE, 1);//設置時鍾源 和定時器自動重裝載

時鍾源有兩個 NMI 中斷源 和 FRC1 中斷

注意:
• 如果使⽤用 NMI 中斷源,且為⾃自動填裝的定時器,調⽤用 hw_timer_arm 時參數 val 必須⼤大於 100
• 如果使⽤用 NMI 中斷源,那么該定時器將為最⾼高優先級,可打斷其他 ISR
• 如果使⽤用 FRC1 中斷源,那么該定時器⽆無法打斷其他 ISR
• hw_timer.c 的接⼝口不能跟 PWM 驅動接⼝口函數同時使⽤用,因為⼆二者共⽤用了同⼀一個硬件定時器。


2、設置硬件定時器的回調函數

hw_timer_set_func(hw_tmer_callback);

使⽤用定時器,必須設置回調函數。用戶可以在這個回調函數里面實現自己的程序,硬件定時器是比較精准的



 3、使能硬件中斷定時器

hw_timer_arm(1000000);

形參是設置定時器的定時長,因為在里面設置了 1us計數加1,所以這里設置計數個數為1000000,就是定時1s


• ⾃自動填裝模式:
‣ 使⽤用 FRC1 中斷源(FRC1_SOURCE),取值范圍 : 50 ~ 0x7fffff;
‣ 使⽤用 NMI 中斷源(NMI_SOURCE),取值范圍 : 100 ~ 0x7fffff;
• ⾮非⾃自動填裝模式,取值范圍 : 10 ~ 0x7fffff;


4、回調函數

void ICACHE_FLASH_ATTR hw_tmer_callback(void)
{
os_printf("1s時間到\r\n");
}

在回調函數里面可以實現自己的代碼





注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com