Hallo liebe Profis, ist es möglich den Wert aus normalerweise OC1A, PWM (PortPinB1) an einen anderen Port zuzuweisen und wie so z.B. PORTD7 = OC1A gibt es dadurch irgendwelche Probleme? Vielen Dank
Kenia schrieb: > PORTD7 = OC1A > > gibt es dadurch irgendwelche Probleme? Was soll das denn bringen? Wie willst du einen 8 Bit Wert einem Pin zuweisen?
PWM wird normalerweise in einem, vom normalen Programm, abgeschlossenen Bereich generiert. Eine Abfrage in der Hauptschleife müsste eigentlich möglich sein, allerdings nicht mit einer einfachen Zuweisung. Es können aber kleine Phasenfehler auftreten, da PWM und Abfrage asynchron stattfinden. Ganz wichtig, wenn Unterbrechungen im Hintergrund laufen oder das Programm richtig zu tun hat. Unterbrechungen finden nach Murphy immer im ungünstigsten Falle statt. Vieles dürfte von der tatsächlich generierten Frequenz abhängen.
Joe B. schrieb: > Was soll das denn bringen? Wie willst du einen 8 Bit Wert einem Pin > zuweisen? Hier ist wohl der compare output pin (OC1A) und nicht das compare register (OCR1A) gemeint. Ich wüsste nicht, dass man den (bei den AVRs) umbelegen kann, ist per hardware so vorgegeben. Ein quick-and-dirty workaround wäre, einen OCR1A Interrupt auslösen zu lassen und den gewünschten Pin in der ISR zu manipulieren. Ob das gut funktioniert kommt auf deine Anforderung und die Auslastung des Controllers an.
Schnellste und wohl auch beste Lösung währe es deinen "zielpin" PORTD7 auf eingang zu stellen und Extern einen Draht Zum Ausgangspin OC1A zu legen. Dadurch verlierst du nur einen Pin dafür keine Rechenleistung und du bekommst keine PWM Fehler.
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.