Forum: Mikrocontroller und Digitale Elektronik datenrichtung festlegen


von anfänger (Gast)


Lesenswert?

Hallo,
ich möchte am port A daten einlesen
also muss ich ja laut tutorial folgendes schreiben:
1
uint8_t a;
2
uint8_tb;
3
DDRA =0x00;
4
a = PORTA;

doch muss ich wenn ich danach daten wieder am port a ausgeben möchte 
erst wieder
1
DDRA=0xFF;
2
PORTA = b;

schreiben?
sprich muss ich die richtung jedes mal erst bekannt machen oder wird das 
automatisch erkannt und gegebenfalls umgestellt?

von Falk (Gast)


Lesenswert?

@anfänger

Das ist eher eine Frage für das Forum GCC.

>ich möchte am port A daten einlesen
>also muss ich ja laut tutorial folgendes schreiben:
>uint8_t a;
>uint8_tb;
>DDRA =0x00;
>a = PORTA;

Klassischer Anfängerfehler.

a = PINA;

>doch muss ich wenn ich danach daten wieder am port a ausgeben möchte
>erst wieder
>DDRA=0xFF;
>PORTA = b;
>schreiben?
>sprich muss ich die richtung jedes mal erst bekannt machen oder wird das

Ja.

>automatisch erkannt und gegebenfalls umgestellt?

Nein.

MFG
Falk

von johnny.m (Gast)


Lesenswert?

> Das ist eher eine Frage für das Forum GCC.
Sehe ich nicht so. Das ist auch für nicht-GCC-Compiler und für Assembler 
so. Wer sagt denn, dass der OP mit GCC arbeitet?

Allgemein:
DDRx legt die Datenrichtung fest
PORTx legt den Zustand der Treiberstufe fest (bei Ausgang: High-Pegel 
oder Low-Pegel, bei Eingang interner Pull-Up ein oder aus)
PINx enthält den jeweils aktuellen Zustand des betreffenden Ports.

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.