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");
}
在回調函數里面可以實現自己的代碼
總結
以上是生活随笔為你收集整理的ESP8266-SDK的硬件定时器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ESP8266-SDK编写的TM1668
- 下一篇: pcf8951 ad/da(iic)转换