【SAMD21解密】 -查询法测试看门狗

分享到:

int main(void)
{
       system_init();
       configure_wdt();


       enum system_reset_cause reset_cause = system_get_reset_cause();


      if (reset_cause == SYSTEM_RESET_CAUSE_WDT) {
      port_pin_set_output_level(LED_0_PIN, LED_0_INACTIVE);   //看门狗触发MCU复位,关灯
      }
      else {
      port_pin_set_output_level(LED_0_PIN, LED_0_ACTIVE);
      }

     
while (true) {
        if (port_pin_get_input_level(BUTTON_0_PIN) == false) {
                 port_pin_set_output_level(LED_0_PIN, LED_0_ACTIVE);    //按键开灯
                 wdt_reset_count();     //复位开门狗
        }
     }

}


看门狗实际是一个特殊的定时器,启用开门狗之后,如果没有及时“喂狗”,等开门狗定时器溢出之后,将触发系统复位,
因此看门狗的一个重要用途就是,当我们的程序没有按照预期运行时,让系统复位,防止程序“跑飞”,而不受控制。
我们可以在程序的适当位置不断地喂狗,更新看门狗寄存器值,一直让看门狗保持在不溢出的状态。
本例中,若我们不断地按BTN0键复位开门狗寄存器,LED将一直保持亮,系统便不会复位!
 

 

更多Atmel及科技资讯请关注:  
Atmel中文官网:https://www.atmel.com/zh/cn/
Atmel技术论坛:https://atmel.eefocus.com/
Atmel中文博客:https://blog.sina.com.cn/u/2253031744
Atmel新浪微博:https://www.weibo.com/atmelcn
继续阅读
简述Microchip PIC16F87XA与PIC16F88X的五点不同之处

除了配备中文版数据手册以外,PIC16F88X系列单片机较之前的PIC16F87XA系列有了不少的改进,以PIC16F877A与PIC16F887粗略对比发现有以下几点不同

89S51系列单片机自带看门狗的用法

在ATMEL的89S51系列的89S51与89C51功能相同。指令兼容。HEX程序无需任何转换可以直接使用。89S51只比89C51增加了一个看门狗功能。89S51的其它功能可以参见89C51的资料。看门狗具体使用方法如下:

ASF模数转换器ADC测试

G55的内部ADC默认为12位,但是也可以通过软件来设置为13~16位,但是这样就牺牲了采样时间。参考电压为VDDIO,也就是3.3V。ADC启动的方式有很多种,我还是比较喜欢使用软件来定时触发。

【SAMD21解密】 -查询法测试看门狗

看门狗实际是一个特殊的定时器,启用开门狗之后,如果没有及时“喂狗”,等开门狗定时器溢出之后,将触发系统复位,因此看门狗的一个重要用途就是,当我们的程序没有按照预期运行时,让系统复位,防止程序“跑飞”,而不受控制。我们可以在程序的适当位置不断地喂狗,更新看门狗寄存器值,一直让看门狗保持在不溢出的状态。

VxWorks共享看门狗定时机制的设计与实现

随着嵌入式电子产品越来越多的应用,实时性操作系统VxWorks得到广泛应用,而定时器正是实时性操作系统中不可或缺的重要组件。文章以VxWorks实时性操作系统中的看门狗机制为基础,提出了一种通用性强、效率高并且使用简单的共享看门狗定时机制。

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss