-
-
Frage zu DDRx, PORTx, PINx
Hi zusammen,
wie ich den Tutorials entnommen habe gehe ich doch folgendermaßen vor:
- wenn ich eine log. 1 oder 0 auf einen Pin legen möchte, setze ich das entsprechende Datenrichtungsregister z.B. DDRA |= (1<<PA2) und setze dann das entsprechende Pin z.B. PORTA |= (1<<PA2);
- wenn ich den Zustand von einem Pin lesen möchte, dann schalte ich das entsprechende DDR auf Eingang, also z.B. DDRA &= ~(1<PA2) und lese dann meinen Zustand ein, z.B: x = PINA & (1<<PA2).
- haben eigtl die "veralteten" Befehle inp() und outp() das DDR und das setzen des angegebenen Pins in einem Schritt gemacht?
Jetzt zur Frage: MUSS ich immer komplett die DDR auf jeweils Ein- oder Ausgang stellen bevor ich überhaupt etwas vom Pin lesen bzw. schreiben kann und welchen Aufwand hat diese Operation im µC? Ist sie atomar oder benötigt sie mehrere Rechenschritte? Gibt es schnellere Varianten?
Viele Grüße,
simple.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen