概述
看門狗定時器(WDT,Watch Dog Timer)是單片機的一個組成部分,它實際上是一個計數器,一般給看門狗一個數字,程序開始運行后看門狗開始計數。如果程序運行正常,過一段時間CPU應發出指令讓看門狗置零,重新開始計數。如果看門狗增加到設定值就認為程序沒有正常工作,強制整個系統復位。
PMS171B配置之看門狗寄存器

在這里插入圖片描述
clkmd寄存器是時鐘模式寄存器,需要打開看門狗時需要配置0-1位位11,gpcc配置如下所示,開啟看門狗配置如下:
CLKMD.2 =1;
CLKMD.1 =1;

在這里插入圖片描述
開啟看門狗之后需要復位,可以使用上圖所示wdreset進行復位。

在這里插入圖片描述

在這里插入圖片描述
看門狗是一個計數器,其時鐘源來自內部低頻振蕩器(ILRC),默認是8k個 ILRC 時鐘周期,故看門狗默認復位時間為8k/50k=0.16s=160ms,由于看門狗技術周期會比預期要短,建議設置160ms/2=80ms就要喂狗。
視頻
配置管腳輸入

在這里插入圖片描述
若配置管腳進行輸入設置,可以如下配置:
pa.5=0;
pac.5=0;/*輸入*/
paph.5=0;/*上拉*/
本章通過PA5按鍵進行檔位切換輸出不同占空比的PWM,當為0檔時關閉PWM,一檔時輸出30%,二檔時輸出50%,三檔時輸出70%,同時加入了按鍵防抖動,防止誤觸,建議PA5接個下拉電阻,防止抖動。

在這里插入圖片描述
完整代碼
#include "extern.h"//是程序的頭文件。
BIT PWM : PA.3; //端口定義
BIT LED1 : PA.5;
/*********按鍵變量**********************/
BYTE PWM_i1 ;//PWM按鍵變量,檔位
BYTE PWM_i2 ;//PWM按鍵變量,是否松開按鍵
BYTE PWM_i3 ;//PWM按鍵變量,防止抖動
void FPPA0 (void)//相當于程序的 main() 函數。
{
/*單片機內部RC震動時鐘為 IHRC默認為16M,因此,IHRC/4=4M,系統時鐘為4M*/
.ADJUST_IC SYSCLK=IHRC/4, IHRC=16MHz, VDD=5V;
/********看門狗***************/
CLKMD.2 =1;
CLKMD.1 =1;
/*端口設置為輸入 低,PA5默認輸入,可以不配置*/
pa.5=0;
pac.5=0;/*輸入*/
paph.5=0;/*上拉*/
/*********PWM*********************/
tm2ct = 0x0;
//tm2b = 0x4d;//占空比 30%4d 50%7f 70%b4
//S1= tm2s[6:5] : 預分頻器設定值(1, 4, 16, 64)
//S2 = tm2s[4:0] : 分頻器值(十進制,0 ~ 31)
//輸出頻率 =4MHz÷ ( 256 * S1 (16) * (S2+1)1) = 976Hz
tm2s = 0b0_10_00000; // 8-bit PWM ,預分頻 = 16 ,分頻 = 0
//tm2c = 0b0001_10_1_0; // 系統時鐘,輸出 =PA3 , PWM 模式
PWM_i2 =0;
PWM_i1 =0;
while (1)
{
wdreset;//喂狗
if(PWM_i1==0)
tm2c = 0b0001_00_1_0; // 停用PWM
else if(PWM_i1==1)
{
tm2c = 0b0001_10_1_0; //啟動PWM
tm2b = 0x4d;//占空比 30%4d 50%7f 70%b4
}
else if(PWM_i1==2)
{
tm2b = 0x7f;//占空比 30%4d 50%7f 70%b4
}
else if(PWM_i1==3)
{
tm2b = 0xb4;//占空比 30%4d 50%7f 70%b4
}
else//重置
{
PWM_i1 = 0;
tm2c = 0b0001_00_1_0; // 停用PWM
}
if(LED1 && PWM_i2==0)//按鍵按下,第一次
{
PWM_i2=1;
}
if(LED1 && PWM_i2&&PWM_i3<10)//按鍵按下,第二次以后,防止抖動
{
PWM_i3++;
}
if(PWM_i3==10&&LED1==0)
PWM_i1++;//檔位
if(LED1==0 && PWM_i2==1)//松開按鍵
{
PWM_i3=0;
PWM_i2=0;
}
.delay 4000*5;
}
}
演示效果

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6076文章
45494瀏覽量
670275 -
看門狗
+關注
關注
10文章
610瀏覽量
72935 -
PMS171B
+關注
關注
1文章
7瀏覽量
2576
發布評論請先 登錄
相關推薦
熱點推薦
PMS171B的相關資料分享
應廣PMS171B--3比較器測供電電源VDD電壓概述PMS171B配置之比較器初始化比較器測供電電源VDD電壓完整代碼演示效果最后概述應
發表于 01-18 10:47
應廣PMS171B(1)--概述&&配置端口輸出高低電平
概述作者經常使用一些國產芯片或者價格價格美麗的單片機,這款應廣單片機PMS171B價格美麗,性價比高,mini-c好用,適用于消費電子開發。但是案例demo太少了,為了方便大家能夠快速入門。為了方便
發表于 11-16 14:22
應廣PMS171B(2)--PWM輸出
引腳為5。PMS171B之PWM配置tm2b寄存器是用來配置PWM的占空比的,0-7位代表數值為0-255。 tm2s寄存器是用來配置PWM的分頻,7位代表PWM分辨率,6-5為預分頻
發表于 11-16 15:02
應廣PMS171B(3)--比較器測供電電源VDD電壓
概述應廣PMS171B單片機有很實用的功能,就是可以用內部的分壓電阻,Band-gap 電路提供 1.2V 參考電壓,和比較器一起,測試單片機VDD電壓.不使用任何外部器件,不占用端口就可以測試供電
發表于 11-16 16:32
stm32看門狗時間計算 獨立看門狗和窗口看門狗的特性是什么
本文為您講解STM看門狗時間計算(時限)與頻率計算,獨立看門狗和窗口看門狗的特性、區別與聯系。
發表于 10-10 10:41
?9382次閱讀
STM32看門狗配置(獨立看門狗IWDG和窗口看門狗WWDG)
stm32自帶兩個看門狗模塊,獨立看門狗IWDG和窗口看門狗WWDG。看門狗主要作用是可用來檢測和解決由軟件錯誤引起的故障;當計數器達到給定的超時值時,觸發一個中斷(僅適用于窗口型
發表于 11-09 17:17
?8839次閱讀
應廣PMS171B(1)--概述與配置端口輸出高低電平
作者經常使用一些國產芯片或者價格價格美麗的單片機,這款應廣單片機PMS171B價格美麗,性價比高,mini-c好用,適用于消費電子開發。但是案例demo太少了,為了方便大家能夠快速入門。為了方便大家應用和開發,這里寫一個
應廣PMS171B(3)--比較器測供電電源VDD電壓
應廣PMS171B單片機有很實用的功能,就是可以用內部的分壓電阻,Band-gap 電路提供 1.2V 參考電壓,和比較器一起,測試單片機VDD電壓.不使用任何外部器件,不占用端口就可以測試供電
STM32中的獨立看門狗和窗口看門狗
一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產品就很容易出現死機,跑飛的情況。為了避免這種情況的出現,后期的MCU都集成了看門狗的功能。但是目前看門狗發展到今天基本上分為兩大類:獨立
應廣PMS171B(5)--看門狗和按鍵輸入及切換檔位
評論