0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

應(yīng)廣PMS171B(5)--看門狗和按鍵輸入及切換檔位

嵌入式單片機(jī)MCU開發(fā) ? 來(lái)源:嵌入式單片機(jī)MCU開發(fā) ? 作者:嵌入式單片機(jī)MCU開 ? 2022-11-14 15:21 ? 次閱讀

概述

看門狗定時(shí)器(WDT,Watch Dog Timer)是單片機(jī)的一個(gè)組成部分,它實(shí)際上是一個(gè)計(jì)數(shù)器,一般給看門狗一個(gè)數(shù)字,程序開始運(yùn)行后看門狗開始計(jì)數(shù)。如果程序運(yùn)行正常,過(guò)一段時(shí)間CPU應(yīng)發(fā)出指令讓看門狗置零,重新開始計(jì)數(shù)。如果看門狗增加到設(shè)定值就認(rèn)為程序沒有正常工作,強(qiáng)制整個(gè)系統(tǒng)復(fù)位。

PMS171B配置之看門狗寄存器

在這里插入圖片描述

在這里插入圖片描述

clkmd寄存器是時(shí)鐘模式寄存器,需要打開看門狗時(shí)需要配置0-1位位11,gpcc配置如下所示,開啟看門狗配置如下:

CLKMD.2 =1;
CLKMD.1 =1;

在這里插入圖片描述

在這里插入圖片描述

開啟看門狗之后需要復(fù)位,可以使用上圖所示wdreset進(jìn)行復(fù)位。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

看門狗是一個(gè)計(jì)數(shù)器,其時(shí)鐘源來(lái)自內(nèi)部低頻振蕩器(ILRC),默認(rèn)是8k個(gè) ILRC 時(shí)鐘周期,故看門狗默認(rèn)復(fù)位時(shí)間為8k/50k=0.16s=160ms,由于看門狗技術(shù)周期會(huì)比預(yù)期要短,建議設(shè)置160ms/2=80ms就要喂狗。

視頻

配置管腳輸入

在這里插入圖片描述

在這里插入圖片描述

若配置管腳進(jìn)行輸入設(shè)置,可以如下配置:

pa.5=0;
      pac.5=0;/*輸入*/
      paph.5=0;/*上拉*/

本章通過(guò)PA5按鍵進(jìn)行檔位切換輸出不同占空比的PWM,當(dāng)為0檔時(shí)關(guān)閉PWM,一檔時(shí)輸出30%,二檔時(shí)輸出50%,三檔時(shí)輸出70%,同時(shí)加入了按鍵防抖動(dòng),防止誤觸,建議PA5接個(gè)下拉電阻,防止抖動(dòng)。

在這里插入圖片描述

在這里插入圖片描述

完整代碼

#include    "extern.h"//是程序的頭文件。
BIT     PWM           :           PA.3;  //端口定義
BIT     LED1          :        PA.5;  
/*********按鍵變量**********************/
BYTE PWM_i1 ;//PWM按鍵變量,檔位
BYTE PWM_i2 ;//PWM按鍵變量,是否松開按鍵
BYTE PWM_i3 ;//PWM按鍵變量,防止抖動(dòng)
void    FPPA0 (void)//相當(dāng)于程序的 main() 函數(shù)。
{
    /*單片機(jī)內(nèi)部RC震動(dòng)時(shí)鐘為 IHRC默認(rèn)為16M,因此,IHRC/4=4M,系統(tǒng)時(shí)鐘為4M*/
    .ADJUST_IC  SYSCLK=IHRC/4, IHRC=16MHz, VDD=5V;
/********看門狗***************/
     CLKMD.2 =1;
     CLKMD.1 =1;
/*端口設(shè)置為輸入 低,PA5默認(rèn)輸入,可以不配置*/    
      pa.5=0;
      pac.5=0;/*輸入*/
      paph.5=0;/*上拉*/
/*********PWM*********************/
tm2ct = 0x0; 
//tm2b = 0x4d;//占空比 30%4d 50%7f 70%b4
//S1= tm2s[6:5] : 預(yù)分頻器設(shè)定值(1, 4, 16, 64)
//S2 = tm2s[4:0] : 分頻器值(十進(jìn)制,0 ~ 31)
//輸出頻率 =4MHz÷ (   256 *   S1 (16) * (S2+1)1)  =  976Hz
tm2s = 0b0_10_00000; //  8-bit PWM ,預(yù)分頻 = 16 ,分頻 = 0
//tm2c = 0b0001_10_1_0;  //  系統(tǒng)時(shí)鐘,輸出 =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;  //啟動(dòng)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)//按鍵按下,第二次以后,防止抖動(dòng)
        {
            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;
    }
}

演示效果

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628416
  • 看門狗
    +關(guān)注

    關(guān)注

    10

    文章

    554

    瀏覽量

    70575
  • PMS171B
    +關(guān)注

    關(guān)注

    1

    文章

    7

    瀏覽量

    2396
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32中的獨(dú)立看門狗和窗口看門狗是什么

    在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本上分為兩大類:獨(dú)立看門狗
    的頭像 發(fā)表于 02-20 17:47 ?2508次閱讀
    STM32中的獨(dú)立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>是什么

    PMS171B的相關(guān)資料分享

    應(yīng)PMS171B--3比較器測(cè)供電電源VDD電壓概述PMS171B配置之比較器初始化比較器測(cè)供電電源VDD電壓完整代碼演示效果最后概述應(yīng)
    發(fā)表于 01-18 10:47

    PMS171B的相關(guān)資料分享

    應(yīng)PMS171B--4ADC概述PMS171B配置ADCPA0檢測(cè)3V代碼演示效果最后概述應(yīng)
    發(fā)表于 02-17 06:15

    應(yīng)PMS171B(1)--概述&&配置端口輸出高低電平

    概述作者經(jīng)常使用一些國(guó)產(chǎn)芯片或者價(jià)格價(jià)格美麗的單片機(jī),這款應(yīng)單片機(jī)PMS171B價(jià)格美麗,性價(jià)比高,mini-c好用,適用于消費(fèi)電子開發(fā)。但是案例demo太少了,為了方便大家能夠快速入門。為了方便
    發(fā)表于 11-16 14:22

    應(yīng)PMS171B(2)--PWM輸出

    引腳為5。PMS171B之PWM配置tm2b寄存器是用來(lái)配置PWM的占空比的,0-7位代表數(shù)值為0-255。 tm2s寄存器是用來(lái)配置PWM的分頻,7位代表PWM分辨率,6-5為預(yù)分頻
    發(fā)表于 11-16 15:02

    應(yīng)PMS171B(3)--比較器測(cè)供電電源VDD電壓

    概述應(yīng)PMS171B單片機(jī)有很實(shí)用的功能,就是可以用內(nèi)部的分壓電阻,Band-gap 電路提供 1.2V 參考電壓,和比較器一起,測(cè)試單片機(jī)VDD電壓.不使用任何外部器件,不占用端口就可以測(cè)試供電
    發(fā)表于 11-16 16:32

    stm32看門狗時(shí)間計(jì)算 獨(dú)立看門狗和窗口看門狗的特性是什么

    本文為您講解STM看門狗時(shí)間計(jì)算(時(shí)限)與頻率計(jì)算,獨(dú)立看門狗和窗口看門狗的特性、區(qū)別與聯(lián)系。
    發(fā)表于 10-10 10:41 ?8664次閱讀

    什么是stm32看門狗?獨(dú)立看門狗和窗口看門狗工作原理解析

    stm32有兩個(gè)看門狗,獨(dú)立看門狗和窗口看門狗,其實(shí)兩者的功能是類似的,只是喂狗的限制時(shí)間不同。 獨(dú)立看門狗
    的頭像 發(fā)表于 11-06 11:48 ?2.7w次閱讀
    什么是stm32<b class='flag-5'>看門狗</b>?獨(dú)立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>工作原理解析

    應(yīng)單片機(jī)

    官方網(wǎng)站PMS134系列應(yīng)mini-c開發(fā)技術(shù)應(yīng)單片機(jī)編程應(yīng)
    發(fā)表于 11-14 10:06 ?38次下載
    <b class='flag-5'>應(yīng)</b><b class='flag-5'>廣</b>單片機(jī)

    應(yīng)PMS171B(4)--ADC

    應(yīng)PMS171B--4ADC概述PMS171B配置ADCPA0檢測(cè)3V代碼演示效果最后概述應(yīng)
    發(fā)表于 12-20 19:40 ?17次下載
    <b class='flag-5'>應(yīng)</b><b class='flag-5'>廣</b><b class='flag-5'>PMS171B</b>(4)--ADC

    應(yīng)PMS171B(1)--概述與配置端口輸出高低電平

    作者經(jīng)常使用一些國(guó)產(chǎn)芯片或者價(jià)格價(jià)格美麗的單片機(jī),這款應(yīng)單片機(jī)PMS171B價(jià)格美麗,性價(jià)比高,mini-c好用,適用于消費(fèi)電子開發(fā)。但是案例demo太少了,為了方便大家能夠快速入門。為了方便大家應(yīng)用和開發(fā),這里寫一個(gè)
    的頭像 發(fā)表于 11-14 12:03 ?1450次閱讀
    <b class='flag-5'>應(yīng)</b><b class='flag-5'>廣</b><b class='flag-5'>PMS171B</b>(1)--概述與配置端口輸出高低電平

    應(yīng)PMS171B(3)--比較器測(cè)供電電源VDD電壓

    應(yīng)PMS171B單片機(jī)有很實(shí)用的功能,就是可以用內(nèi)部的分壓電阻,Band-gap 電路提供 1.2V 參考電壓,和比較器一起,測(cè)試單片機(jī)VDD電壓.不使用任何外部器件,不占用端口就可以測(cè)試供電
    的頭像 發(fā)表于 11-14 13:52 ?1541次閱讀
    <b class='flag-5'>應(yīng)</b><b class='flag-5'>廣</b><b class='flag-5'>PMS171B</b>(3)--比較器測(cè)供電電源VDD電壓

    應(yīng)PMS171B(4)--ADC

    應(yīng)PMS171B單片機(jī)有很實(shí)用的功能,對(duì)于PMS171B-S08,有3個(gè)ADC輸入管腳,8bit的ADC,分別是AD8、AD9、AD10。
    的頭像 發(fā)表于 11-14 15:24 ?1985次閱讀
    <b class='flag-5'>應(yīng)</b><b class='flag-5'>廣</b><b class='flag-5'>PMS171B</b>(4)--ADC

    STM32中的獨(dú)立看門狗和窗口看門狗

    一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本上分為兩大類:獨(dú)立
    的頭像 發(fā)表于 12-22 16:58 ?1894次閱讀

    什么是看門狗,工業(yè)路由器看門狗技術(shù)的功能優(yōu)勢(shì)

    一個(gè)輸入和一個(gè)輸出,其中輸入叫做喂狗,輸出一般連接到另外一個(gè)部分的復(fù)位端。看門狗技術(shù)的核心硬件是看門狗模塊,分為硬件看門狗和軟件
    的頭像 發(fā)表于 03-27 10:16 ?1629次閱讀
    什么是<b class='flag-5'>看門狗</b>,工業(yè)路由器<b class='flag-5'>看門狗</b>技術(shù)的功能優(yōu)勢(shì)