Forum: Mikrocontroller und Digitale Elektronik Stellung OC-PIN nach abschalten der PWM


von Thomas O. (Gast)


Lesenswert?

Hallo,

habe mal ne Frage was nach dem abschalten der PWM mit einem Pin
passiert, hat er die Stellung die er vor dem Einschalten der PWM hatte
oder ist es eher so das man sich darauf nicht verlassen kann und ihn
neu beschreiben sollte. Kurzgefasst schauts so aus

Sicherstoppen:
sbr temp, 0b00001000    ;OC0-Pin high, zieht N-FET gegen Masse
out portb, temp         ;damit Motor nicht unerwartet anläuft

PWMUebergabe:
lds temp, DVS           ;Lade PWM-Wert aus Speicherzelle im SRAM
out OCR0, temp          ;Übergebe an PWM-Einheit

PWMein:
ldi temp, (0<<FOC0) | (1<<WGM00) | (1<<COM01) | (1<<COM00) | (1<<WGM01)
| (1<<CS02) | (0<<CS01) | (0<<CS00)   ;FAST-PWM
out tccr0, temp

PWMaus:
ldi temp, (0<<FOC0) | (1<<WGM00) | (0<<COM01) | (0<<COM00) | (1<<WGM01)
| (0<<CS02) | (0<<CS01) | (0<<CS00)  ;Disconnect OC0-PIN von
PWM-Einheit, Timer stoppen
out tccr0, temp

Sicherstoppen2:   Benötigt?
sbr temp, 0b00001000    ;OC0-Pin high, zieht N-FET gegen Masse
out portb, temp         ;damit Motor nicht unerwartet anläuft

von Michael W. (mictronics) Benutzerseite


Lesenswert?

Ich würde den Code einbauen, um sicher zu gehen das Du nach abschalten
einen definierten Zustand am Pin hast.

/Michael

von Mark H. (haemi)


Lesenswert?

Klar, sicher ist sicher. Aber ist es nicht so, daß durch Aktivieren der
PWM der Wert in PORTx ignoriert wird, sich also durch die PWM auch
nicht verändert? Wenn dem so wäre, würde nach Abschalten der PWM wieder
der ursprüngliche PORTx-Wert auf den Ausgangstreiber geschaltet. Schau
doch mal, ob sich während der PWM der Registerwert von PORTx ändert.
Falls ja, wüßte ich nicht, wo der AVR den ursprünglichen Wert
zwischenspeichern sollte. Ich nehme an, im PWM-Modus wird an dem PORTx
"vorbeigemuxt".

von Laeubi (Gast)


Lesenswert?

Wird dieser eine befehl dein Programm signifikant stören?
Sicher ist sicher...

von Thomas O. (Gast)


Lesenswert?

ja stimmt schon "sicher ist sicher", hätte mich nur mal interessiert.
Dort wo ich die Schaltung betreibe komme ich leider nur mit nem
untermotorisieren Laptop hin. Muss mal schauen, werde es umbedingt noch
testen da es mich auch interessiert ob einfach nur vorbeigemuxt wird und
der Wert erhalten bleibt.

von Hauke Radtki (Gast)


Lesenswert?

Also bei der simulation wird der wert in im PORTx geändert. Aber ich
glaube mich zu errinnern, dass bei meinen versuchen mit PWM der wert
immer wieder auf den ausgangswert der vorher drinne stand zuruck fiel.
Aber wenn du durch die 2 befehle in keine timing oder sonstwas
schwierigkeiten kommst dann hau das rein.

von Tobias Tetzlaff (Gast)


Lesenswert?

Hallo,

im datenblatt des Mega8 und 128 steht,
das der OCR Pin low ist, wenn der PWM Wert null ist.
Also bleibt der Status nicht dort stehen,wo er ist, oder geht dahin, wo
er vorher war.

Gruß Toby

von Mark H. (haemi)


Lesenswert?

Ja, der OCR-Pin selbst muß diesen Pegel annehmen. Aber wenn im PWM-Modus
nur ein Mux die PWM-Logik statt den PORT-Registerwert auf den
Ausgangstreiber schaltet, dann muß sich das PORT-Register dafür nicht
ändern. Der Simulator scheint das Register selbst zu ändern. Das muß
aber nicht unbedingt der Realisierum im Chip entsprechen. Ich weiß
nicht, wie präzise der Simulator den Chip nachempfindet.

von Hannes L. (hannes)


Lesenswert?

Was sagt Bild 25 auf Seite 54 des Datenblatts?

...

Achja, da du den AVR-Typ nicht genannt hast bin ich mal vom MegaAcht
ausgegangen...

von Thomas O. (Gast)


Lesenswert?

Es handelt sich um den ATM16.

@Hannes: Kannst du das kurz zitieren damit ichs im ATM16 Datenblatt
suchen kann?

von Hannes L. (hannes)


Lesenswert?

Bild 26 Seite 53...

...

von AxelR. (Gast)


Lesenswert?

Tabelle 21 in deisem Zusammenhang nicht unberücksichtigt lassen (Seite
54)....

von AxelR. (Gast)


Lesenswert?

der Zustand des Ports wird vom Bit PVOE und PVOV überschrieben.
Der eigentliche Wert deines Ports bleibt im Ausgabelatch erhalten und
steht nach abschalten der PWM wieder zur Verfügung
Seite 62 Table 32.

Esst mehr Obst - lest mehr Datenblätter

Gruß zusammen

AxelR.

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.