Vielen dank für die antwort, es tut sich schonmal was.
Ich wäre froh wen du mir zwei dinge noch erklären könntest.
zum einen was passiert hier?:
Code:
ISR(TIMER0_OVF_vect) //Timer Interrupt Vector
{TCNT0 = timer;
ms++;
}
Timer wird ja durch: (256-F_CPU/64/1000)
ersetzt. Was passiert den hier genau?
TCNT0 ist ja das Daten Register des Timer 0.
Hier wird diesem Register ja ein Wert zugewissen.... wird nicht normal ein Wert aus diesem Register gelesen?
Die Variable ms wird nach jedem Interupt um 1 erhöht... richtig?
Code:
{if(ms >=100)
{PORTB ^= (1<<PORTB0);ms = 0;}
Und was geschieht hier?
Wen die Variable ms grösser oder gleich 100 ist... also nach 100 interupts...
Wird PORTB im zustand gewechselt... also High zu low und low zu High... anschliessend wird die Variable ms auf null gesetzt und die Schleife beginnt von vorn?
Lesezeichen