ATMEGA 8 Timer 0 Interrupt löst nicht aus

Gast #2785236
Lesenswert?

Hallo,

ich versuche gerade beim ATMEGA 8 den TIMER/COUNTER 0 in Betrieb zu 
nehmen.

Habe mir folgenden Code überlegt
1
#include <avr/io.h>
2
#include <stdint.h>
3
#include <util/delay.h>
4
#include <avr/interrupt.h>
5

6
int main(void){
7

8
DDRD = (1<<PD6);  //Pin 6 von Port D als Ausgang definieren
9
TCCR0 = (1<<CS02) | (1<<CS00); //CT/1024
10
TIMSK !=(1<<TOIE0); // Interrupt erlauben;
11

12
sei(); // Interrupt aufrufen
13

14
while(1){
15
}
16
}
17

18
ISR (TIMER0_OVF_vect)
19
{
20

21
PORTD = 0b0100000; // Pin 6 auf VCC und LED blinken lassen
22
}

jedoch blinkt meine LED nicht.
Kann es sein das die Interruptfunktion nicht aufgerufen wird?

Kann man sich bei AVR STudio den Wert von TCNT0 anzeigen lassen?
Ähnlich wie Variable bei C mit Visual Basic?
#2785266
Lesenswert?

intenso schrieb:
> Vielen Dank.
>
> Es lag am ! =).
>
> Ja die LED blinkt nicht sondern leuchtet dauerhaft.
>
> Hatte mir gedacht, das wenn der Interrupt alle x Zeit aufgerufen wird,
> die LED dann blinkt.
>
> Da muss ich nochmal drüber nachdenken

Dank denk mal darüber nach, das es für ein Blinken auch notwendig ist, 
dass die LED auch mal abgeschaltet wird. Du kannst am Lichtschalter so 
oft du willst auf 'Ein' drücken. Da wird nichts blinken, wenn du 
zwischendurch nicht auch mal auf 'Aus' drückst.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren