Forum: Mikrocontroller und Digitale Elektronik Arduino bedingte Konfiguration


von Eugen T. (weaver)


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

: Bearbeitet durch User
von Wolfgang (Gast)


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.

von Eugen T. (weaver)


Lesenswert?

Das heißt in jedem Status kann ich die Pins neu definieren, und dann 
lesen und schreiben? Ich war nicht sicher ob ich diese Definitionen auch 
in Subroutinen machen darf.
Ich werde es bald probieren.

Danke?

von Brummbär (Gast)


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.

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.