OK ich hab den Debouncingpart weggemacht und Teste dann nun das Programm mit einem OCR1A Wert von 31250
Bericht folgt.
Vielen dank schonmal für die Hilfe.
OK ich hab den Debouncingpart weggemacht und Teste dann nun das Programm mit einem OCR1A Wert von 31250
Bericht folgt.
Vielen dank schonmal für die Hilfe.
Leider rennt die Uhr nun übertrieben schnell hoch.
Was mach ich denn nur falschCode:#ifndef OCR1A #define OCR1A OCR1 // 2313 support #endif #ifndef WGM12 #define WGM12 CTC1 // 2313 support #endif #define XTAL 8000000L // nominal value TCCR1B = (1<<WGM12)| (1<<CS10); // divide by 1 // clear on compare OCR1A = 31250; // Output Compare Register TCNT1 = 0; // Timmer startet mit 0 TIMSK = 1<<OCIE1A; // beim Vergleichswertes Compare Match sei(); SIGNAL (SIG_OUTPUT_COMPARE1A) { ss++;//Addiere +1 zu Sekunden LED_burned++; ANALOG_ss++; if (ss == 60) { ss = 0; mm++;//Addiere +1 zu Minuten if (mm == 60) { mm = 0; hh++;//Addiere +1 zu Stunden if (hh == 24) { hh = 0; } } } }
zschunky hat den Prescaler schon vorgegeben, bei Dir steht was anderes.Zitat von zschunky
Der genauere Wert für das OCR1A wäre 31249. (Formel im Datenblatt bei Timer1, Modes of Operation, CTC )Code:TCCR1B = (1<<WGM12)| (1<<CS10); // divide by 1 // clear on compare OCR1A = 31250; // Output Compare Register
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Weg zu einigen meiner Konstruktionen
Also
THXCode:TCCR1B = (1<<WGM12)| (1<<CS12);
Wie wäre es mit
TCCR1B = (1<<WGM12)| (1<<CS12);
Dann wäre der Prescaler auf 256 gestellt.
JO dankeschön.
Bin noch ein Noob was uC angeht nimmt Rücksicht.
Lesezeichen