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
Ich würde den Code einbauen, um sicher zu gehen das Du nach abschalten einen definierten Zustand am Pin hast. /Michael
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".
Wird dieser eine befehl dein Programm signifikant stören? Sicher ist sicher...
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.
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.
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
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.
Was sagt Bild 25 auf Seite 54 des Datenblatts? ... Achja, da du den AVR-Typ nicht genannt hast bin ich mal vom MegaAcht ausgegangen...
Es handelt sich um den ATM16. @Hannes: Kannst du das kurz zitieren damit ichs im ATM16 Datenblatt suchen kann?
Tabelle 21 in deisem Zusammenhang nicht unberücksichtigt lassen (Seite 54)....
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.