Frage zu PORTx, PINx und Pull-up-Widerständen

Gast #609360
Lesenswert?
• ▲
▼
Moin!

PORTx ist für die Pull-Up-Widerstände bei als Eingang geschalteten Pins 
zuständig, der Pegel über PINx geregelt. Bei Ausgängen nimmt man dann 
PORTx. Das war mir bislang nicht bewusst, ich habe immer PINx verwendet, 
und das hat auch funktioniert.

Gestern hatte ich allerdings das Problem, dass ich einen als Ausgang 
geschalteten Pin (D6 am tiny2313) per PIND gesetzt habe. Es sollte damit 
ein Relais gesteuert werden. Wir haben dann irgendwann gemerkt, dass das 
Relais brummt, also ständig toggelt (per Oszi überprüft). Nachdem wir 
den Quellcode nach und nach bis auf die Zeile
1
for(;;) {
2
  PIND |= (1<<PD6);
3
}

reduziert hatten, war klar, wo der Fehler liegt. Nach entsprechender 
Internet-Recherche bin ich dann darauf gestoßen, dass hier PORTD 
verwendet werden muss.

Meine Frage ist: Was passiert denn hier? Welche Funktion hat PINx, wenn 
der Zielpin als Ausgang gesetzt ist? Wäre klasse, wenn mir das jemand 
erklären könnte.

Gruß Matze

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.