Forum: Mikrocontroller und Digitale Elektronik Portpins Variabel ansprechen


von C167 (Gast)


Lesenswert?

Hallo alle zusammen,

ich habe eine Frage:

ist möchte mehrere LEDs in Abhängigkeit einer Variablen ansprechen, 
sodass je nach dem Wert dieser Variablen nur eine bestimmte LED 
angeschaltet wird.

Könnte man das so machen:

unsigned int x;
berechnung von x;
P2^x=1; // Einschalten der x-ten LED

Vielen Danke schon mal für eure Hilfe

C167

von Ralf G. (ralg)


Lesenswert?

C167 schrieb:
> Könnte man das so machen:
Nö.

Es sieht so aus, als ob du dich erstmal mit den Grundlagen einer 
Programmiersprache deiner Wahl beschäftigen solltest!?

von R. M. (Gast)


Lesenswert?

Du meinst sicher
P2=2^x; oder besser formuliert (schieben statt potenzieren)
P2=1<<x;

von Lisa (Gast)


Lesenswert?

Das ist wirklich nett von dir, Ralf. Muss man sich in den Grundlagen 
auskennen um hier fragen zu dürfen? Es ist leider so, dass ich mir schon 
Mühe gegeben habe um die Grundlagen zu verstehen. Ich habe gehofft, dass 
hier geholfen wird, auch wenn man etwas aus den Grundlagen falsch 
verstanden hat.
Ich glaube die Leds anzuschalten ist keine Aufgabe für Profis. Durch die 
Frage ist es ersichtlich, dass ich in c neu bin.

von ElektroNick (Gast)


Lesenswert?

Wenn du gerade mit C anfängst, hast du schon mit Arrays gearbeitet? Das 
ist eine prima Möglichkeit, um so etwas, wie du machen möchtest, 
umzusetzen. Du speicherst deine Port Pins in einem Array und kannst dann 
über den Index auf die einzelnen Pins zugreifen. Die Pins können dann 
auch von Unterschiedlichen Ports kommen oder in einer anderen 
Reihenfolge im Array liegen, als sie vom Controller kommen.

von Michael U. (amiga)


Lesenswert?

Hallo,

Lisa schrieb:
> Das ist wirklich nett von dir, Ralf. Muss man sich in den Grundlagen
> auskennen um hier fragen zu dürfen? Es ist leider so, dass ich mir schon
> Mühe gegeben habe um die Grundlagen zu verstehen. Ich habe gehofft, dass
> hier geholfen wird, auch wenn man etwas aus den Grundlagen falsch
> verstanden hat.

bist Du nun Lisa oder C167???

Egal, erkläre uns doch einfach mit gesundem Menschenverstand erklärst,
wie man P2^x den Wert 1 zuweist.
So mit einem Beispiel, wo die 1 landen soll...

Gruß aus Berlin
Michael

von vorticon (Gast)


Lesenswert?

Hallo C167, an die Kindsköpfe hier im Forum muss man sich gewöhnen.

Wie restmuell schon schrieb...

DDRA=255; // Port A als Ausgang
PORTA = 1<<x; // i-ten Pin anschalten

so ginge das beispielsweise.

der << Operator bewirkt einen Bit-shift, entspricht einer Multiplikation 
der 1 mit 2^x (2 hoch x).


Gruss

von Ralf G. (ralg)


Lesenswert?

Lisa schrieb:
> Muss man sich in den Grundlagen auskennen um hier fragen zu dürfen?
Das sollte man schon, wenn man mit einer Frage einsteigt, die zur 
Beantwortung die Grundlagen voraussetzt.
> Es ist leider so, dass ich mir schon Mühe gegeben habe um die Grundlagen zu
> verstehen. [...] Durch die Frage ist es ersichtlich, dass ich in c neu bin.

C167 schrieb:
> P2^x=1; // Einschalten der x-ten LED
Gibt es eine irgendeine Programmiersprache, mit der du dich schon mal 
beschäftigt hast (in C bist du ja neu), bei der man einer Berechnung 
einen Wert zuweisen kann?

vorticon schrieb:
> DDRA=255; // Port A als Ausgang
> PORTA = 1<<x; // i-ten Pin anschalten
>
> so ginge das beispielsweise.
Ja, möglich, zum Beispiel.
Und das gehört eben zu den Grundlagen:
> der << Operator bewirkt einen Bit-shift, entspricht einer Multiplikation
> der 1 mit 2^x (2 hoch x).
Das gibt es in anderen Programmiersprachen auch (in C bist du ja neu).

von vorticon (Gast)


Lesenswert?

Du hast wohl nicht viel zu tun, wenn du so schimpfst. Naja ich bin mal 
weg.

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.