Die Frage ist, was ich nun mit den Ausgängen mache. Timer1 ist ja nun blockiert :-/
Wenn Du den Timer nicht im CTC ( Clear Timer at Comparematch ) Mode laufen lässt, kannst Du problemlos auch die Impulsgenerierung darüber machen.
Du gibst den Comparematch Interrupt frei und stellst Ihn auf das nächste Ereignis ein.
Wie weit Du bei der Impulsgenerierung schon bist, kannst Du mit einer Zählvariable abspeichern.
Guck mal den Code ein paar Post's weiter vorne von mir an und zwar den Abschnitt
Code:
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)........
Der Code ist für CodeVision, sollte aber auch mit ein paar Änderungen auf AVR GCC laufen.
Elementar ist, das das TCNT1 Register nicht manipuliert werden darf, also keine Werte reinschreiben und kein CTC.
Dann kannst Du, wenn Du lustig bist, sogar noch den Comparematch B für die Generierung einer weiteren Impulskette benutzen.
Wenn Du die Variablen unsigned machst, sind auch Timer Überläufe kein Problem.
Lesezeichen