Hallo, hat jemand eine Idee wie ich folgendes in Form von Software lösen kann? Über Timer0 eines Atmega8515 erzeuge ich am OC0-Pin ein PWM-Signal mit dem ich eine LED dimmen kann. Zusätzlich soll die LED noch mit einer variablen Frequenz blinken. Ich dachte dabei an den Timer1. Mit unterschiedlichen Werten in OCR1A bekomme ich schließlich Interrupts mit unterschiedlichen Frequenzen hin. Nun würde ich in der ISR von Timer1 gerne eine Art "Enable" für den OC0-Pin aktivieren und deaktivieren, um der "Dimm-PWM" eine "Blink-Frequenz" überlagern kann. Bitte nur Softwarelösungen, eine Hardwarelösung habe ich bereits. Danke matt
:
Bearbeitet durch User
Matt B. schrieb: > Nun würde ich in der ISR von Timer1 gerne eine Art "Enable" für den > OC0-Pin aktivieren und deaktivieren, um der "Dimm-PWM" eine > "Blink-Frequenz" überlagern kann. > Mit den COM0x Bits in TCCR0 kannst du doch den OC0 Pin ein- und ausschalten (zum Timer0 durchschalten und trennen). Das Setzen und Löschen der COM0x machst du dann in der Timer1 ISR.
Hallo Grufti, danke, so funktionierts. Eine andere Möglichkeit wäre in das OCR0-Register eine 0 zu schreiben, wenn die LED aus sein soll und den entsprechenden Helligkeitswert wenn die LED ein sein soll. Hat aber den Nachteil, dass man den Wert im OCR0-Register zwischenspeichern muss, bevor man 0 rein schreibt. Von meiner Seite aus kann das Thema damit auch schon geschlossen werden.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.