Arduino bedingte Konfiguration

OP #5974082
Lesenswert?

Nach Jahrzehnten in Assembler Welt versuche ich mein erstes Arduino 
Program zu schreiben, und gleich habe ich ein Problem.

In
Void setup; //definiere ich die Ports
Int Dir=A0;
Int wsense=9;
Int esense=8;
Usw.. (es gibt noch 8, aber die sind eindeutig)

Dann bestimme ich die Signalrichtung

PinMode(Dir,INPUT);
Für die Ports 8 und 9 kann ich hier noch nichts bestimmen.

Dann soll die Bedingung folgen:

Wenn: Dir<500

Dann:

PinMode(wsense,OUTPUT);
PinMode(esense,INPUT);

und umgekehrt:

Wwnn:Dir>500 akkor
PinMode(wsense,INPUT);
PinMode(esense,OUTPUT);

Es gibt 6 Status, also in jedem muss ich die PINs P8 und P9 neu 
bestimmen, und dann lesen und schreiben.
Wie macht man es am einfachsten?

Vielen Dank für eure Hilfe.
Eugen
Gast #5974090
Lesenswert?

Eugen T. schrieb:
> Es gibt 6 Status, also in jedem muss ich die PINs P8 und P9 neu
> bestimmen, und dann lesen und schreiben.
> Wie macht man es am einfachsten?

Mit einen Array, in dem zu jedem Status für jeden Pin der Modus 
eingetragen ist. Auf die Werte kann man dann per Status als Index 
zugreifen und die Pins entsprechend setzen.
Gast #5974113
Lesenswert?

Eugen T. schrieb:
> Ich war nicht sicher ob ich diese Definitionen auch
> in Subroutinen machen darf.

Hier werden, wie in Assembler, nur die Datenrichtungsregister 
geschrieben.
Das darfst Du überall machen. Bei Arduino wird lediglich zusätzlich die 
Arduino-"Portnummer" in einen Port und eine Bitmaske umgewandelt.

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