久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> Arduino >> 瀏覽文章

Arduino的Watchdog Timer

作者:y8686   來(lái)源:轉(zhuǎn)自y8686   點(diǎn)擊數(shù):  更新時(shí)間:2014年07月12日   【字體:

 看門狗! 聽起來(lái)就足夠“高大上”的。

 
曾一度以為Arduino有bootloader就不會(huì)有watchdog了,但是事實(shí)上是有的。 
 
我參考了如下兩個(gè)鏈接:
http://tushev.org/articles/arduino/item/46-arduino-and-watchdog-timer
http://blog.csdn.net/chn89/article/details/17199171
 
然后寫了如下代碼實(shí)驗(yàn)。
 
該代碼正常情況下啟動(dòng)watchdog,并設(shè)定watchdog定時(shí)器為1s。 loop里面每次循環(huán)開始的時(shí)候“喂狗”。
主循環(huán)loop里有按鍵檢測(cè),檢測(cè)到pin#7上的按鍵按下就切換pin#13上的LED狀態(tài),啟動(dòng)時(shí)默認(rèn)LED熄滅。
如果檢測(cè)到串口有數(shù)據(jù)輸入則進(jìn)入死循環(huán),watchdog定時(shí)器1s到時(shí)間后會(huì)自動(dòng)重啟。
 
實(shí)驗(yàn),燒入程序后,按按鍵使得LED亮起,然后在電腦上打開串口終端,發(fā)送任何字符,1秒后LED會(huì)熄滅(重啟后的LED初始狀態(tài)),表示arduino重啟了。
 
 
 
C語(yǔ)言: 高亮代碼由發(fā)芽網(wǎng)提供


#include

#define BUTTON_PIN          7       // Button pin
#define LED_PIN             13      // Led pin
#define BUTTONS_SAMPLES     6000   // Affect the sensitivity of the button
#define BUTTON_PRESSED      LOW     // The state of the pin when button pressed

unsigned int o_prell          0;      // counter for button pressing detection
boolean button_state          = false;  
unsigned int led_state        = LOW;    // Led off at the beginning

void setup()
{
   Serial.begin(9600);

   pinMode(BUTTON_PIN, INPUT);
   pinMode(LED_PIN, OUTPUT);
   
   // set initial LED state
   digitalWrite(LED_PIN, led_state);

   wdt_enable(WDTO_1S);    // enable the watchdog timer : 1 second timer
}

void loop()
{
   wdt_reset();    // feed the dog

   check_button();
   digitalWrite(LED_PIN, led_state);

   if (Serial.available()>0)
   {
       while(1) ;
   }
}

void check_button()
{
   int button_input    =   digitalRead(BUTTON_PIN);

   if ((button_input == BUTTON_PRESSED) && (o_prell <</SPAN> BUTTONS_SAMPLES))
   {
       o_prell++;      // counting for button pressing
   }
   else if ((button_input == BUTTON_PRESSED) && (o_prell == BUTTONS_SAMPLES) && !button_state)
   {
       button_state = true;    // button pressed
       //led_state = HIGH;
       led_state = !led_state;
   }
   else if ((button_input != BUTTON_PRESSED) && (o_prell > 0))
   {
       o_prell--;      // counting for button releasing,  or debouncing / immunity
   }
   else if ((button_input != BUTTON_PRESSED) && (o_prell == 0) && button_state)
   {
       button_state = false;
       //led_state = LOW;
   }
}
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 一区二区高清不卡 | 五月天婷婷综合 | 日屁网站 | 免费xxxx大片国产在线 | 亚洲国产精品视频 | 成人国产在线观看 | 天天摸天天看 | 亚洲xxxxx| 成人免费视频网站在线看 | 日韩在线 | 欧美日韩不卡 | 一级毛片免费 | 91精品国产综合久久婷婷香蕉 | 国产精品海角社区在线观看 | 久久综合爱| 国产精品国产精品国产专区不卡 | 丝袜一区二区三区 | 日韩一区二区三区四区五区六区 | 激情国产视频 | 欧美国产日韩一区 | 成人国产精品久久久 | 国产乱精品一区二区三区 | 成人午夜视频在线观看 | 免费观看毛片 | 日本在线一区二区 | 中文字幕在线视频一区二区三区 | 亚洲乱码一区二区三区在线观看 | 亚洲精品第一 | 国产伦精品一区二区三区视频金莲 | 福利网站在线观看 | 一区二区视频免费观看 | 男女爱爱福利视频 | 国产不卡一区 | 欧美videosex性极品hd | 国产成人免费视频 | 成人三级网址 | 精品福利在线视频 | 色就干| 久久精品一二三影院 | 日韩国产欧美在线观看 | 男人的天堂亚洲 |