WtchDog Arduino nano

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Bagizo
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2020. március 30. hétfő, 11:20

WtchDog Arduino nano

HozzászólásSzerző: Bagizo » 2020. március 30. hétfő, 11:39

Sziasztok!
Próbálta már valaki a watchdog-ot Arduino nano-n?
Az alábbi próba programot futattam, de nem a vártak szerint működik. Amikor már nem kap resetet a watcdog, újra is indítja a vezérlőt, de úgy tűnik, nem a program indul újra. A D13-ra kötött led gyors villogásba kezd, a nano semmire nem reagál, azt hiszem még a resetre-sem. Táp lehúzás és új programverzió feltöltés viszont működik! Letöltöttem egy watchdog könyvtárat is, ugyanzt produkálja. Megnéztm videókat a neten, ott működött ugyanez program, bár ott UNO-val próbálkoztak.
Ez a példaprogram, amit kipróbáltam:

#include<avr/wdt.h> /* Header for watchdog timers in AVR */

void setup() {
Serial.begin(9600); /* Define baud rate for serial communication */
Serial.println("Watchdog Demo Starting");
pinMode(13, OUTPUT);
wdt_disable(); /* Disable the watchdog and wait for more than 2 seconds */
delay(3000); /* Done so that the Arduino doesn't keep resetting infinitely in case of wrong configuration */
wdt_enable(WDTO_2S); /* Enable the watchdog with a timeout of 2 seconds */
}

void loop() {
for(int i = 0; i<20; i++) /* Blink LED for some time */
{
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
delay(100);
wdt_reset(); /* Reset the watchdog */
}
while(1); /* Infinite loop. Will cause watchdog timeout and system reset. */
}

Köszi!

Bagi

Bagizo
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2020. március 30. hétfő, 11:20

Re: WtchDog Arduino nano

HozzászólásSzerző: Bagizo » 2020. április 16. csütörtök, 6:12

Sziasztok!
Hátha valakit érdekel a megoldás! A fenti program az old bootloaderes nano-n nem működik. Az UNO jól működik vele. A legújabb Arduino IDE-vel rátöltöttem a nano-ra egy bootloadert, és megoldódott a probléma. Azóta viszont (logikusan) a nano-ra történő program feltöltéskor az IDE-ben már nem az old bootloader-es ATmega328-at kell kiválasztani, hanem a simát!
Bagi

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10047
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: WtchDog Arduino nano

HozzászólásSzerző: Robert » 2020. április 19. vasárnap, 6:23

Csak a pontosítás miatt: Nem elromlik, hanem, a WatchDog esetén az újraindulás okát az MCUSR nevű regiszter tárolja. A NANO Old Bootloader (ami megegyezik a diecimila/duemilanove bootloaderrel) ezt kiolvassa, és ha WatchDog volt az indulás oka, akkor a bootloadert végtelen ciklusba küldi, hogy a hibásan futó program ne okozzon kárt ...

A "kiütése":
- Áramkört resetben tartod (resetgomb nyomva).
- PC-re rádugod, ekkor kap csak tápot (igaz ez a külső tápra is!)
- Arduino keretrendszerben a BLINK-et töltöd fel rá.
-> a File-Settings / File-Beállítások alatt a "Log mutatása fordításkor, feltöltéáskor: Mindkettő előtt legyen pipa!
- a fordítás megtörténte után kiírja pirossal, hogy a feltöltés indul (AVRDUDE.... kezdetű sor, ez előtt van a lefordított HEX mérete, szabad memória, stb)
- RESETgombot _csak ekkor_ engeded fel.
- Feltöltés végigmegy, mert az első STK500 feltöltési próbálkozást engedi és csak utána fut a bootloader tiltásra!

Talán egyszerűbb, mint programozóval a chipet újraprogramozni, és esetleg végleg kizárni...
http://www.tavir.hu - a gazda :)


Vissza: “Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég