Forum: Mikrocontroller und Digitale Elektronik port d als eingang


von hannes (Gast)


Lesenswert?

ich hab bei mir port b als eingang.
Nun meine frage :
muss ich den dazu den eingang auf gnd legen ?
wenn es 0 sein soll ??
und wie sieht das alles bem ausgang aus ??

von crazy horse (Gast)


Lesenswert?

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)

von hannes (Gast)


Lesenswert?

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 ??

von crazy horse (Gast)


Lesenswert?

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.

von hannes (Gast)


Lesenswert?

aha verstanden :) dank dir ...

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
Noch kein Account? Hier anmelden.