port d als eingang

Gast
die Grundentscheidung triffst du mit dem Wert im DDRx-Register, steht 
dort eine 1, ist es ein Ausgang, bei 0 ein Eingang.
Das Portgegister PORTx hat eine Doppelbedeutung, ist der jeweilige 
Portpin als Ausgang konfiguriert, wird der Wert von PORTx auch 
ausgegeben. Ist der Pin dagegen als Eingang konfiguriert, bedeutet eine 
1 im Port-Register interner Pullup-Widerstand eingeschaltet, d.h. am 
Eingangspin erscheint ein H-Pegel, der von externen Schaltungen nach L 
gezogen werden kann. Steht eine 0 im PORTx-Register, ist der Eingang 
hochohmig, sowhol H-als auch L-Pegel wird von ext. Schaltungen 
bereitgestellt. Unabhängig von allem müssen Eingaben immer vom 
PIN-Register gelesen werden (beliebter Anfängerfehler, vom Portregister 
zu lesen)
Gast
uiui kompliziert :)
das  mit dem DDRx Register weiß ich aber heißt das jetzt wenn ich jetzt 
einen eingang habe (also 0 gewählt habe) .. und damits ganz einfach ist 
...
ich lege die denn eingang auf gnd dann liegt am eingang 0 oder ? 
unterbreche ich dann liegt am eingang
1 hab ich das so richtig verstanden ??
Gast
fast, das ist so nur richtig, wenn im entsprechenden PORT-Register eine 
1 steht.
Mal ein Beispiel, PortB.0 soll ein Eingang sein, die anderen Ausgänge 
mit 0 am Ausgang.

ldi r16, 0b11111110   ;PB0 as input
out DDRB, r16
ldi r16, 0b00000001   ;PB0 pullup activated
out PORBB, r16

read_input:
in r16, PINB   ; r16 enthält jetz an Bitstelle 0 den Wert 1, wenn der 
Eingang offen ist und 0, wenn der Eingang extern auf Masse gelegt ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 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.