Hallo,
danke schon mal für eure Rückmeldung
Vielleicht fangen wir einfach noch mal ganz von vorne an.
Ich möchte gerne in einem Array sowohl den Port (z.B. PORTA )als auch
den Pin (z.B. PA2) für einige LEDs ablegen, sodass ich in einer for
Schleife über das Array iterieren und dann die entsprechende LED
einschalten kann.
Dazu ist es meiner Meinung nach notwendig entweder, so wie ich es
vorgeschlagen habe die Ports und Pins in einem Array zu speichern oder
wie Stefan es vorgeschlagen hat, ein struct für die LED mit Pin und Port
anzulegen und davon dann ein Array für die gesamte Anzahl der LEDs zu
bilden. (Sollte ja egal sein wie rum man es macht)
Wenn ich mein Macro verwende
1 | #define PortSet(PORT,PIN) (PORT |= (1 << PIN))
|
2 |
|
3 | PortSet(LED1_PORT,LED1_PIN);
|
Dann leuchtet die gewählte LED.
Wenn ich jetzt aber versuche die Register Adressen ( daher auch die
ganzen * ) in meinem Array zu speichern, kompiliert der Code
anstandslos, die LEDs gehen aber nicht an.
@Tom: Dein Vorschlag mit +0x20 bei Port funktioniert leider nicht.
@Stefan:
>Formuliere bitte mal in Worten,
>a) was du in ledPort speichern möchtest
>b) was du in ledPin speichern möchtest
in ledPort soll der PORT an dem die LED angeschlossen ist gespeichert
werden z.B. PORTA
in ledPin soll der PIN an dem die LED angeschlossen ist gespeichert
werden z.B. PA2
Hinter den Bezeichnungen PORTx und PAx verbergen sich doch meines
Verständnissen nach auch entsprechende Register somit möchte ich jetzt
gerne in meinem Array die Port und Pin Adressen speichern, sodass ich
sie an mein Macro übergeben kann, welches mir dann die Ausgangsports
setzt.
Ich hoffe ich konnte mich jetzt etwas verständlicher ausdrücken, was ich
will/ brauche.