Hallo Leute,

ich habe mir einen Atmega 16 zugelegt und schon einiges programmiert. jz möchte ich mir eine Stopp uhr aus meinen 7-Segmenten basteln und da komme ich mit der Funktion _delay_ms() nicht mehr weiter. So hab ich auf mikrocontroller.net das Timer-Tutorial durch gearbeitet. Leider funtioniert mein Programm nicht, vielleicht könnt Ihr mir weiterhelfen!

Danke schon im vorhinein!

Hier ist mein Code:
Code:
#define F_CPU 1000000
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

int zaehler=0;

ISR (TIMER0_OVF_vect)
{
         zaehler++;
}

int main()
{
        //Timer konfigurieren
        //Prescaler = 1024
        TCCR0 = (1<<CS02)|(1<<CS00);
        //Overflowinterrupt erlauben
        TIMSK |= (1<<TOIE0);
        //Aktivierung der Interrupts
        sei();
        //Ports konfigurieren
        DDRB = 0xFF     //PortB sind Ausgänge für LEDs

        while(1)
        {
                 if(zaehler==12)
                 {
                           PORTB = 0xF0;
                 }
        }
return 0;
}
Das Problem ist das die LEDs sofort zu leuchten beginnen.
Wenn ich eine Frequenz von 1MHz habe und eine Prescaler von 1024
heißt dass das der Timer 976 mal erhöht wird pro sekunde=> darausfolgt das ich 976/256=3,81 Overflows habe.
Wenn ich die Variable zaehler dann bis 12 zählen lasse heißt, das das ich ungefähr 3sekunden warten muss bis die LEDs leuchten


MFG
fulltime