ESP8266的硬件定時(shí)器的使用也比較簡(jiǎn)單
1、設(shè)置定時(shí)器的時(shí)鐘源和自動(dòng)重裝載
hw_timer_init(FRC1_SOURCE, 1);//設(shè)置時(shí)鐘源 和定時(shí)器自動(dòng)重裝載
時(shí)鐘源有兩個(gè) NMI 中斷源 和 FRC1 中斷
注意:
如果使用 NMI 中斷源缘挑,且為自動(dòng)填裝的定時(shí)器桶略,調(diào)用 hw_timer_arm 時(shí)參數(shù) val 必須大于 100
如果使用 NMI 中斷源,那么該定時(shí)器將為最高優(yōu)先級(jí)惶翻,可打斷其他 ISR
如果使用 FRC1 中斷源鹅心,那么該定時(shí)器?無(wú)法打斷其他 ISR
hw_timer.c 的接口不能跟 PWM 驅(qū)動(dòng)接口函數(shù)同時(shí)使?用,因?yàn)槎吖灿昧送粋€(gè)硬件定時(shí)器颅筋。
2宙暇、設(shè)置硬件定時(shí)器的回調(diào)函數(shù)
hw_timer_set_func(hw_tmer_callback);
使用定時(shí)器占贫,必須設(shè)置回調(diào)函數(shù)先口。用戶可以在這個(gè)回調(diào)函數(shù)里面實(shí)現(xiàn)自己的程序,硬件定時(shí)器是比較精準(zhǔn)的
3碉京、使能硬件中斷定時(shí)器
hw_timer_arm(1000000);
形參是設(shè)置定時(shí)器的定時(shí)長(zhǎng),因?yàn)樵诶锩嬖O(shè)置了 1us計(jì)數(shù)加1坑匠,所以這里設(shè)置計(jì)數(shù)個(gè)數(shù)為1000000卧惜,就是定時(shí)1s
自動(dòng)填裝模式:
使用 FRC1 中斷源(FRC1_SOURCE),取值范圍 : 50 ~ 0x7fffff;
使用 NMI 中斷源(NMI_SOURCE)咽瓷,取值范圍 : 100 ~ 0x7fffff;
非自動(dòng)填裝模式,取值范圍 : 10 ~ 0x7fffff;
4闪朱、回調(diào)函數(shù)
void ICACHE_FLASH_ATTR hw_tmer_callback(void)
{
os_printf("1s時(shí)間到\r\n");
}
5.硬件定時(shí)器使能與關(guān)閉
使能TM1_DEGE_INT_ENABLE();
關(guān)閉TM1_DEGE_INT_DISABLE();
在回調(diào)函數(shù)里面可以實(shí)現(xiàn)自己的代碼