Forum: Mikrocontroller und Digitale Elektronik Timerinterrupt ATmega64 CodeVisionAVR-Compiler


von spacehelix (Gast)


Lesenswert?

Hi Leute,

ich sitze hier gerade an meinem Projekt und möchte ein paar LED's
blinken lassen. Leider Funktioniert das mit dem interrupt irgendwie
nicht. kann mir einer helfen was ich falsch gemacht habe?

hier ist der Code:

#include <mega64.h>

void timer_init(void);

void main(){
        DDRB = 0xff;    //PortB als Ausgang definiert.
        PORTB = 0x00;   //PortB Low alle LED's an.
        timer_init();
return;
}
void timer_init (void) {
    TCCR1A=0x00;
    TCCR1B = 0x05;
    TIMSK = 0x04;       //clk/1024  clk=8MHz Taktfreq.
    TCNT1 = 57724;      //Wert fuer 1 sec. bis zum überlauf
    #asm("sei");
}
interrupt [14] void timer1_overflow(void){

        static unsigned char t=0;
        if (t==0){
                PORTB = 0xff;
                t=1;}
        else {
                PORTB = 0x00;
                t=0;}
        TCNT1 = 57724;
}

Die LED's Leuchten aber der interrupt wird nicht ausgeführt so das sie
blinken.

Gruß spacehelix

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.