当前位置:网站首页>CMT2380F32模块开发12-看门狗 WDT例程

CMT2380F32模块开发12-看门狗 WDT例程

2022-08-11 11:55:00 andylauren

WDT 可用来检测和解决由软件错误引起的故障。当 WDT 计数器达到设定的溢出时间后,会触发中断或产生系统复位。WDT 由专用的 10KHz 片内振荡器驱动。

20Bit 自由运行的递增计数器,溢出时间可配置为 1.6ms – 50s。溢出后的动作可配置为中断或复位。WDT 时钟由独立的 RC 振荡器提供,可在 Sleep 和 DeepSleep 模式下工作。

本样例主要展示MCU的看门狗的功能。

    // 0: 1.6ms 1: 3.2ms 2: 6.4ms 3: 13ms 4: 26ms 5: 51ms 6: 102ms 7: 205ms 8: 500ms
    // 9: 820ms A: 1.64s B: 3.28s C: 6.55s D: 13.1s E: 26.2s F: 52.4s
    stcWdt_Config.u8LoadValue = 0x0b;  // 3.2s

    stcWdt_Config.enResetEnable = WINT_EN;  //中断模式
    // stcWdt_Config.enResetEnable = WRESET_EN;		//复位模式

    stcWdt_Config.pfnWdtIrqCb = WdtCallback;

    Clk_SetPeripheralGate(ClkPeripheralWdt, TRUE);  //
    Wdt_Init(&stcWdt_Config);

    Wdt_Start();
    Gpio_SetIO(T1_PORT, T1_PIN, 1);

    while (1) {
        // cnt = Wdt_ReadWdtValue();
        // Wdt_Feed();//测试喂狗功能时,放开屏蔽
    }

用示波器查看P3.4引脚的电平变化:
   如果是产生中断,则P3.4引脚每3.2秒翻转一次;     ___┌───┐___┌───┐_
   如果是产生复位,P3.4引脚每3.2秒有一个低电平脉冲。───┐┌───┐┌───

原网站

版权声明
本文为[andylauren]所创,转载请带上原文链接,感谢
https://blog.csdn.net/andylauren/article/details/126278118