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
Gast
#3566637
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.