Forum: Compiler & IDEs Watchdog mit Interrupt


von Norbert S. (norton)


Lesenswert?

Hallo!

Ich habe einen ATmega48 und möchte, dass der Watchdog einen Interrupt 
auslöst.
1
#include <avr/interrupt.h>
2
#include <avr/wdt.h>
3
#ifndef F_CPU
4
#warning "F_CPU war noch nicht definiert!"
5
#define F_CPU 8000000UL
6
#endif
7
#include <myfunc.h>
8
9
ISR(WDT_vect)
10
{
11
  //Watchdog Interrupt
12
  LED(1);
13
  _delay_ms(20);
14
}
15
16
int main( void )
17
{
18
19
  //*****************************************
20
  //  Ports initialisieren
21
  //*****************************************
22
  DDRB  = 0b00010111;
23
  PORTB  = 0b11101101;
24
25
  DIDR0  = 0b00001111;
26
  DDRC  = 0b00110000;
27
  PORTC  = 0b00110000;
28
29
  DDRD  = 0b11111111;
30
  PORTD  = 0b00010000;
31
  //*****************************************
32
33
  WDTCSR |= (1 << WDIE) | (1 << WDCE) | (1 << WDP2);
34
  sei();
35
36
  while( 1 )        // Hauptprogramm
37
  {
38
39
    PORTB |= (1 << PB0);    //LED Aus (wird mit eins ausgeschaltet)
40
    long_delay(1000);    //Absichtlich damit der Watchdog anspringt
41
  }
42
  return 0;
43
}

Das Problem scheint mir, dass die Einstellungen, welche ich vornehmen 
möchte nicht übernommen werden. (Ich sehe alle 16 ms was ja der 
Standardwert des WD ist einen Peak am Oszi --> ich denke der WD macht 
ein Reset)

Was habe ich falsch gemacht um nur die Interrupts auszulösen?
Gibt es in der avr-libc nur den "Resetmodus" oder habe ich da was 
übersehen?

Danke Norton

von AVRFan (Gast)


Lesenswert?

Hm, ich denke darüber sollte das Datenblatt des ATmega48, Kapitel 
Watchdog, aber eindeutig Auskunft geben?

von Norbert S. (norton)


Lesenswert?

Nach etlichen Versuchen hab ichs nun hinbekommen.
Ich habe übersehen das Fusebit WDTON umzuschalten.

von OliverSo (Gast)


Lesenswert?

>Ich habe übersehen das Fusebit WDTON umzuschalten.

Wobei WDTON in der Defaulteinstellung den Interrupt zulässt ;-)

Oliver

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.