Gibt es sowas wie Konfigurationsprioritäten?

OP #1564233
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren