Portpins Variabel ansprechen

Gast #4634264
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
Gast
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.
Gast
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.
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
Gast
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
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).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.