天天看點

ESP8266學習——DOG&delay添加在函數之前DOGdelay

DOG&delay

  • 添加在函數之前
  • DOG
    • 看門狗簡介
    • 喂狗函數
    • 實驗
  • delay
    • 微秒延時函數
    • 毫秒延時函數

添加在函數之前

#include "user_config.h"
#include "driver/uart.h"

#include "c_types.h"
#include "os_type.h"
#include "osapi.h"

#define ProjectName "DOG&delay"

           

DOG

看門狗簡介

看門狗,又叫 watchdog,從本質上來說就是一個定時器電路,一般有一個輸入和一個輸出,其中輸入叫做喂狗,輸出一般連接配接到另外一個部分的複位端,一般是連接配接到單片機。 看門狗的功能是定期的檢視晶片内部的情況,一旦發生錯誤就向晶片發出重新開機信号。看門狗指令在程式的中斷中擁有最高的優先級。

喂狗函數

ESP8266學習——DOG&delay添加在函數之前DOGdelay

實驗

注釋喂狗函數,使喂狗函數不執行

編譯,燒錄,複位

ESP8266學習——DOG&delay添加在函數之前DOGdelay

根據序列槽調試助手接收到的消息,可知,程式執行不了多久,就會進行複位操作

ESP8266學習——DOG&delay添加在函數之前DOGdelay

消除喂狗函數的注釋,使喂狗函數執行

編譯,燒錄,複位

ESP8266學習——DOG&delay添加在函數之前DOGdelay

根據序列槽調試助手接收到的消息,可知,程式正常執行,每個1秒都會發送字元串

ESP8266學習——DOG&delay添加在函數之前DOGdelay

delay

微秒延時函數

ESP8266學習——DOG&delay添加在函數之前DOGdelay

毫秒延時函數

//毫秒延時函數
void ICACHE_FLASH_ATTR
delay_ms(u32 C_time)
{
	for(; C_time>0; C_time--)
	{
		os_delay_us(1000);
	}
}
           

繼續閱讀