Forum: Mikrocontroller und Digitale Elektronik WDT Intterrupt Atini13A


von Pascal (Gast)


Lesenswert?

Hallo,
Habe folgende Testroutine geschrieben, allerdings springt er mir nie in 
die ISR(WDT_vect).

Das Prg. soll alle 8S in die ISR(WDT_vect) und etwas machen. Ziel war es 
die LED zu Toggeln.

Danke Pascal


#define TELCOM_VCC   PB0
#define KEY_CLEAR    PB2
#define KEY_ONE      PB3
#define KEY_TWO      PB4

#define CLEAR_ON          PORTB |= (1 << PB2);
#define CLEAR_OFF         PORTB &=~(1 << PB2);
#define ONE_ON            PORTB |= (1 << PB3);
#define ONE_OFF           PORTB &=~(1 << PB3);

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>


void wdt_init(void)

{

cli();

MCUSR = ~(1<<WDRF);
WDTCR =  (1<<WDCE) | (1<<WDE);

WDTCR = ((1<<WDTIE) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0)); // Interrupt 
mode & Prescaler auf 8Sek. setzen

MCUSR = ~(1<<WDRF);
WDTCR = ~(1<<WDE);

sei();

}


ISR(WDT_vect)
{
    //PORTB ^= (1 << PB0);
  ONE_ON;
}



int main(void)
{
  // Port Ausgänge
  DDRB = (1 << KEY_CLEAR)| (1 << KEY_ONE)| (1 << KEY_TWO)| (1 << 
TELCOM_VCC);


  while(1)
  {

  CLEAR_ON;
  _delay_ms(500);
  CLEAR_OFF;
  _delay_ms(500);

  }
  return 0;
}

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.