achso sind CS 10 11 und 12.. ich konnte jetzt aber nicht genau feststellen, welcher welchen wert hat...
- - - Aktualisiert - - -
kann das sein, dass die richtige lösung CS100 lautet??
- - - Aktualisiert - - -
ahne CS 12...?
Werbung
achso sind CS 10 11 und 12.. ich konnte jetzt aber nicht genau feststellen, welcher welchen wert hat...
- - - Aktualisiert - - -
kann das sein, dass die richtige lösung CS100 lautet??
- - - Aktualisiert - - -
ahne CS 12...?
ja danke :-D
ich habe jetzt noch eine doofe frage aber was soll schon passieren..
also die 1 ms habe ich jetzt aber ich soll ja jede zweite LED 9 ms leuchten lassen.
muss ich dafür einen zweiten timer einfügen oder reicht dass mit diesem invertierenden befehl bei else? ist das programm denn sonst richtig??
grüss dich,
Ich habe noch etwas am quellcode geändert.
Wenn ich das programm laufen lasse, funktioniert es immernoch nicht so wie gewünscht...
warum hast du in dein Interrupt eine Endlosschleife?Code:ISR (TIMER1_OVF_vect) { long timer_1 = 0 ; // Variable "Timer1" deklarieren long timer_2 = 0 ; // Variable "Timer2" deklarieren while (1) { timer_1 ++; // Vorladewert von 0 an inkrementieren PORTB = 0xAA ; // ungerade LED´s werden für 1 ms beleuchtet if (timer_1 = preload_value_1) { TIMSK = (1 << TOIE1); // 1 ms ist vergangen -> Interrupt einschalten } else { timer_2 ++; PORTB=0x55 ; // gerade LED´s werden für 9 ms beleuchtet if (timer_2 = preload_value_2) { TIMSK = (1 << TOTIE1); // 9 ms sind vergangen-> Interrupt einschalten } } } }
Dein Programm ist schneller beendet, als der Timer1 sein Interrupt auslöst.Code:int main (void) { DDRB |=(1<<PB2); // Output 1 DDRB |=(1<<PB3); // Output 2 sei (); }
Und du greifst gar nicht auf deine init_Timer1 Funktion zu. Also läuft dieser erst gar nicht an.
Lesezeichen