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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.