Hallo Spezialisten ;o) Mag sein, dass das jetzt peinlich wird, aber ich weiß das tatsächlich nicht und kann nur Vermutungen anstellen, weil anscheinend noch niemand so (blöde) Ideen hatte und diverse Suchmaschinen daher - zumindest auf meine Suchbegriffe - keine Ergebnisse liefern. Frage: Bei den AVRs können ja viele PINs mehrere Funktionen haben (Eingang, Ausgang, ADC, PWM, ...). Was mich jetzt interessiert ist, was passiert, wenn man (aus Versehen) während des Betriebs eine Funktion umschaltet? Beispiel: Ein Ausgang wird beim Start so konfiguriert, dass er im (HW-)PWM-Modus läuft; der Timer wird konfiguriert und der PIN toggelt schön brav. Was ist jetzt aber, wenn man das DDRx des PINs setzt und den PIN als Ausgang konfiguriert? Ist das dann auch sofort ein Ausgang (mit HIGH oder LOW-Pegel oder was auch immer gerade beim PWM aktuell war) oder gibt's da einen Reset oder oder oder? Und wenn das Ding wirklich dann ein Ausgang ist: Was passiert mit dem Timer? Läuft der dann noch oder beendet der sich dann auch automatisch? Gibt es also sowas wie eine "Konfigurationspriorität" (ich weiß, blödes Wort :-)) oder muss man - um bei dem Beispiel zu bleiben - zuerst den PWM deaktivieren / beenden und kann dann DDRx PORTx etc. benutzen (um evtl. keinen RESET auszulösen)? Wie sieht das auch umgekehrt aus? Wenn ein Port ein Eingang ist und dann als PWM konfiguriert wird. Schlimmes Beispiel (falls es so einen AVR gibt): Ein Pin, der einen PinChange-Interrupt auslösen kann, wird plötzlich mit PWM betrieben.... Bekomme ich dann laufend die Interrupts, weil sich der PIN-Status ändert (nur halt nicht von extern, sondern der Lümmel macht das bereits intern...)? Ich hoffe, ich habe meine kranken Gedanken etwas erklären können und würde mich freuen, wenn da schon jemand Erfahrungen mit so einer "Fehlkonfiguration" gemacht hat.
Werden die Portkonfigurationen auf irgendeine Art verriegelt? Nein! Ergebnis: Wer zuletzt kommt, gewinnt. Bernhard
Im Datenblatt ist immer die jeweilige Logik zur Pin-Funktion, mit den betreffenden Konfigurationsregistern angegeben. Da kann man dann ganz einfach nachschauen was passiert.
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.