Forum: Mikrocontroller und Digitale Elektronik Wer gewinnt? PWM oder Port zuweisung


von Fralla (Gast)


Lesenswert?

Ich möchte am OC0B Pin ein PWM signal Ausgeben. Dieser Pin liegt beim 
ATmega88 am Port D.
An den anderen Pins werden Daten ausgegeben.
Wenn die PWM in Betrieb ist und ich setze den ganzen Port D auf 0, was 
passiert dann?

von Analog (Gast)


Lesenswert?

Wenn ich mich am Hintern kratze und meiner Mutter schaut zu, was 
passiert dann?

von Andy (Gast)


Lesenswert?

>Wenn ich mich am Hintern kratze und meiner Mutter schaut zu, was
>passiert dann?

Dann solltest du dir mal Gedanken machen langsam aus deinem Elternhaus 
auszuziehen ...

von Fralla (Gast)


Lesenswert?

>Wenn ich mich am Hintern kratze und meiner Mutter schaut zu, was
>passiert dann?
Scheint dir ja öfter zu passieren, einfach nur bemitleidenswert und arm.

Ich möchte einfach wissen was eine höhere Priortät hat, der PWM ausgang, 
also OC0A oder die Zuweisung des Port-Register (PORTD)?

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Siehe Datenblatt, die PWM Funktion überschreibt jede Portfunktion an dem 
Pin,  das DDR register hat weiterhin seine funktion.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ich weiß nicht.... ist das Lesen und Verstehen von Datenblättern 
wirklich so schwer?!

von Ralph (Gast)


Lesenswert?

es gibt 2 Möglichkeiten.
Welche davon auf deinen µC zutreffen musst, du im dem Datenblatt lesen.

1. Der Pin wird beim Schreiben Port = 0 auf 0 gesetzt und mit der 
nächsten Änderung des PWM signals wird der Pin wieder nach dem PWM 
signal geändert.
Die Auswirkung ist, das zum Zeitpunkt Port = 0 das PWM Signal 
beeinflusst wird.

2. Der Pin kann explizit als PWM Pin configuriert werden. In diesem Fall 
hat die Zuweisung Port = 0 keine Einfluß auf den Pin.


Lösungsweg für dich wäre eventuell :
Nicht Port = 0 zu verwenden sondern

Lese Portzustand ; Portzustand AND b00000001 ; schreibe Portzustand

In diesem Beispiel ist das niederwertigste Bit der Pin für PWM. Wird 
eion anderer Pin verwended die 1 an die entsprechende Stelle schieben.

Dieser Lösungsvorschlag funktioniert in beiden obengenannten 
Möglichkeiten.

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.