Forum: Mikrocontroller und Digitale Elektronik Watchdog ISR wird nicht ausgelöst


von M. G. (ixil96)


Lesenswert?

Hallo!

Ich verwende einen ATtiny44A und habe das Problem, dass die Watchdog ISR 
nicht ausgelöst wird. Weiters gibt mir Atmel Studio (6.2 und auch 7) 
beim compilieren eine Warnung "WDT_vect appears to be a misspelled 
signal handler"

Hier mein Code:
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include <avr/wdt.h>
4
5
int main(void)
6
{
7
  DDRA = 0xFF;
8
  PORTA = 0x00;
9
  
10
  WDTCSR = (1<<WDIE);                // watchdog Interrupt enabled
11
  WDTCSR |= (1<<WDP1)|(1<<WDP2);          // watchdog system reset enabled, set timeout 1s
12
13
  sei();          // Interrupts aktivieren
14
  
15
  while(1)
16
  {
17
    
18
  }
19
}
20
21
ISR (WDT_vect)            // ISR Watchdogtimer Overflow Interrupt
22
{
23
  PORTA ^= (1<<PA0);        // LED toggle
24
  WDTCSR |= (1<<WDIE);      // Watchdog Interrupt enabled
25
}

von wdt (Gast)


Lesenswert?

>"WDT_vect appears to be a misspelled signal handler"

Dann schreib ihn halt richtig.

von Einer K. (Gast)


Lesenswert?

Lauzt Tabelle auf dieser Seite: 
http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html
Hat der Tiny44 keinen WDT_vect

von M. G. (ixil96)


Lesenswert?

wdt schrieb:
>>"WDT_vect appears to be a misspelled signal handler"
>
> Dann schreib ihn halt richtig.

Ist er doch!

in der iomx8.h stehen die folgenden Definitionen:
1
/* Watchdog Time-out Interrupt */
2
#define WDT_vect_num    6
3
#define WDT_vect      _VECTOR(6)
4
#define SIG_WATCHDOG_TIMEOUT    _VECTOR(6)

von H.Joachim S. (crazyhorse)


Lesenswert?

Hat er doch...
Aber WDCE fehlt.

von Einer K. (Gast)


Lesenswert?

H.Joachim S. schrieb:
> Hat er doch...

Nein!
Der Vektor heißt WATCHDOG_vect !

Außerdem liegt er nicht auf  _VECTOR(6) sondern auf _VECTOR(8)

von M. G. (ixil96)


Lesenswert?

U. F. schrieb:
> Lauzt Tabelle auf dieser Seite:
> http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html
> Hat der Tiny44 keinen WDT_vect

DANKE für den Hinweis! Jetzt funktioniert die Sache.
Im Datenblatt sthet leider WDT :-(

Richtig ist:
ISR (WATCHDOG_vect)

von Rolf M. (rmagnus)


Lesenswert?

m. g. schrieb:
> in der iomx8.h

Du hat aber einen ATtiny44A und keinen ATmegaX8. Da mußt du schon auch 
in dessen Header nachschauen, also iotn44a.h.

von Peter D. (peda)


Lesenswert?

m. g. schrieb:
> Im Datenblatt sthet leider WDT :-(

Ja, der Header ist falsch.
Ich würde ihn editieren und WDT_vect hinzufügen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.