• 看门狗定时器


    1 看门的概概念

    看门狗又叫 watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零,如果超过规定的程序不喂狗(一般程序跑飞时),WDT定时超过,就回给一个复位信号到MCU,MCU复位,防止MCU死机,看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

    MUC:微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制

    RST端:复位端

    2 看门狗的工作原理

    工作原理:在系统运行以后也就是启动了看们狗的计数器,看门狗就开始自动计数,如果到了一定时间不去清除看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。

    3 看门狗的实现过程(Exynos 4412)

    在这里插入图片描述

    t_watchdog = 1/(PCLK/(Prescaler value + 1)/Division_factor)
    实际上就是:看门狗时钟周期=1/(PCLK源时钟频率/预分频值+1)/预分频系数

    1/周期=频率

    4 看门狗相关寄存器(Watchingdog Timer的Register Description

    4.0 寄存器描述

    在这里插入图片描述

    4.1 WTCON

    在这里插入图片描述

    4.2 WTCNT

    在这里插入图片描述
    当我们想要使用看门狗功能的时候,首先我们需要先使能WDT timer ,如果我们时最初使能WDT timer ,WTDAT的值并不能加载到这个定时计数寄存器(WTCNT)中,所以我们需要初始化赋值给WTCNT

    WTDAT

    在这里插入图片描述
    在最初使能WDT的时候,这里面的值不能直接赋值给WTCNT,直到超时后的情况下,才会把这个WTDAT里面的值赋值给WTDAT

    WTCLRINT

    在这里插入图片描述
    随便写一个值就会清除中断

    #include "exynos_4412.h"
    
    
    void delay(int i)
    {
    	while(i--);
    }
    
    
    
    void WDT_Init()
    {
    	/* 设置一级分频 156 = 0x9B+1*/
    	WDT.WTCON = WDT.WTCON & (~(0xFF<<8)) | (0x9B<<8);
    
    	/* 设置二级分频 64- 10 */
    	WDT.WTCON |= (0x2<<3);
    
    	//看门狗频率为100000000/156/64 约等为10000Hz
    	
    	/* 关闭中断 */
    	WDT.WTCON &= (~(0x1<<2));
    
    	/* 打开产生复位信号 */
    	WDT.WTCON |= 1;
    
    	/* 设置计数器计数值 */
    	WDT.WTCNT = (5*10000);  //5秒
    
    	/* 使能看门狗 */
    	WDT.WTCON |= (0x1<<5);
    }
    
    int main()
    {
    	WDT_Init();
    
    	while(1)
    	{
    		printf("WDT.WTCNT = %d\n", WDT.WTCNT); //打印计数器值
    		delay(100000);
    	}
    	return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    效果会计数,然后当递减计数器清零,便会自动复位,因为这里并没有喂狗

  • 相关阅读:
    【CKA考试笔记】七、密码管理
    Unexpected tokens (use ‘;‘ to separate expressions on the same line)
    MySQL【存储过程与函数】
    老卫带你学---leetcode刷题(48. 旋转图像)
    MT4深受投资者喜欢,anzo capital昂首资本认为这几个特点必不可少
    报错注入
    VMware Ubuntu虚拟机忘记密码
    Linux IPC通信
    探索常见经典目标检测算法:从YOLO到Faster R-CNN
    ssm+vue+elementUI 医院门诊互联电子病历管理信息系统-#毕业设计
  • 原文地址:https://blog.csdn.net/hpx12345678/article/details/126777386