Gibt es sowas wie Konfigurationsprioritäten?

OP #1564233
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.
Gast
Im Datenblatt ist immer die jeweilige Logik zur Pin-Funktion, mit den 
betreffenden Konfigurationsregistern angegeben. Da kann man dann ganz 
einfach nachschauen was passiert.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.