Forum: Mikrocontroller und Digitale Elektronik Wert aus OC1A anderem Port zuweisen?


von Kenia (Gast)


Lesenswert?

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

von Olek (Gast)


Lesenswert?

Kannst es ja ausprobieren. Ist nicht schwer.

von Joe S. (bubblejoe)


Lesenswert?

Kenia schrieb:
> PORTD7 = OC1A
>
> gibt es dadurch irgendwelche Probleme?

Was soll das denn bringen? Wie willst du einen 8 Bit Wert einem Pin 
zuweisen?

von amateur (Gast)


Lesenswert?

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.

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

In einem größeren dsPIC kann man solche Funktionen i.d.R. einen 
beliebigen PIN zuordnen.

von Markus R. (maggus)


Lesenswert?

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.

von Sven (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.