-
-
Erfahrener Benutzer
Roboter Experte
DDRX sind Data Direction Register, sie geben an, ob eine Pin als Eingang oder als Ausgang dient. Wenn z.B. mit DDRB = 0x03; (0x03 = 3 = 0b00000011) oder mit DDRB |= (1 << PB0) | (1 << PB1); PB0 und PB1 im Data Direction Register gesetzt hat, gibt man damit an, dass man diese 2 Pins als Ausgang verwenden möchte. (<< und >> sind Schiebeoperatoren, sie schieben ein Bit um x Stellen nach rechts, bzw. nach links).
Möchtest du überprüfen, ob eine als Eingang verwendete Pin HIGH oder LOW ist kannst du das mit z.B. if(PINB & (1 << PB3)) machen.
Wichtig: Wenn du eine Taste an einem Eingang benutzt, brauchst du immer einen PullUp-Widerstand, der die Pin bei nicht gedrückter Taste auf + zieht (ich gehe davon aus, dass deine Taste die Pin auf Masse zieht). Du kannst das entweder mit einem externen Widerstand machen oder intern, indem du das entsprechende Bit für die Pin im Datenausgangsregister PORTX setzt.
mfg
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen