datenrichtung festlegen

Gast #529868
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?
Gast #529917
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
Gast #529924
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren