Das mit Config Port und Config Pin ist in der Tat verwirrend.muss ich jetzt beim input immer eine zahl und einen buchstaben eingeben und beim output nur buchstabe? tut mir leid, ich stehe total auf dem schlauch
Eindeutig geht´s mit dem DDR-Register (DDR = Data Direction Register):
DDRX.Y = 0 bedeutet: Anschluss X.Y ist ein Eingang
DDRX.Y = 1 bedeutet: Anschluss X.Y ist ein Ausgang
Da bei Power-On-Reset alle DDDR-Register den Wert 0 enthalten, sind alle I/O-Anschlüsse zunächst mal Eingänge. Für diese Aufgabe muss man sie nicht konfigurieren, das sind sie ganz von alleine.
Soll ein Anschluss ein Ausgang werden, muss das entsprechende Bit im DDR-Register auf 1 gesetzt werden. Das kann entweder einzeln geschehen, also z.B.
DDRB.2 = 1
DDRB.3 = 1
DDRB.4 = 1
DDRB.5 = 1
oder Du setzt gleich alle 8 Bits des Registers:
DDRB = &B00111100 ("&B" heißt, dass die folgende Zahl binär ausgeschrieben wird)
Mit diesem Befehl sind die Anschlüsse B5,B4,B3 und B2 Ausgänge, der Rest sind Eingänge.
Und wenn Du den PullUp-Widerstand eines Eingangs aktivieren willst, musst Du eine 1 in das entsprechende PORT-Register schreiben. Also für Deine beiden Eingänge also z.B.
PORTB.0 = 1
PORTB.1 = 1
In anderen Worten:
1. Ob Ein- oder Ausgang, legt das DDR-Register fest.
2. Ist der Anschluss ein Ausgang, legt das PORT-Register seinen Pegel fest.
3. Ist er ein Eingang legt das PORT-Register fest, ob der PullUp-Widerstand aktiviert wird.
Jetzt etwas klarer?
Lesezeichen