Bitte poste dein nächsten Code hier im Forum "lesbar"... also beim antworten den Button erweitern (unten rechts) klicken und dann im Menü "Code einfügen" benutzen und deinen Code reinkopieren. Dann kann man auch schneller lesen, ohne erst was runterladen zu müssen.
Zu dein Code:
Ich sortiere ihn mal
Den Inhalt von deiner ISR und init-Funktion habe ich mal weg gelassen.Code:#include <avr/io.h> // AVR headerfile, in dem die Ansteuerung der I/Os definiert wird #define F_CPU 16000000UL // Definiert die CPU-Frequenz auf 16MHz (entspricht Frequenz des verwendeten Quarzes) #include <util/delay.h> // AVR Headerfile, das die Delay-Funktion definiert #include <avr/interrupt.h> // Interrupt Bibliothek #define preload_value_1 62500 // 1. Vorladewert #define preload_value_2 562500 // 2. Vorladewert void init_timer_1 (void) { // hier den Timer1 initialisieren } ISR (TIMER1_OVF_vect) { // Hier dein Code um zwischen 1 ms und 9 ms zu unterscheiden } int main (void) { // Portrichtung konfigurieren DDRB |=(1<<PB2); // Output 1 DDRB |=(1<<PB3); // Output 2 // Funktion aufrufen um den Timer1 zu initialisieren init_Timer_1(); // Interrups global freigeben sei(); // Arbeitsschleife while(1) { } }
Aber mal eine andere Frage... du sollst die ungeraden LEDs 1ms und die geraden 9ms leuchten lassen...
Alle wieviel ms soll sich der Vorgang wiederholen?
Wie wills du das Ergebnis überprüfen? Denn 1ms und 9 ms sieht man nicht bzw. kaum. Hast du ein Oszilloskop um deine Arbeit zu prüfen?







Zitieren
Lesezeichen