INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Bitand funktioniert nicht wie ich es erwarte
07.09.2013, 21:30
Beitrag #1
Bitand funktioniert nicht wie ich es erwarte
Tach,

bevor ich gleich meine Tischplatte zerbeiße wende ich mich mal an euch: Ich möchte 4 LEDs über einen einzige Zahl ansteuern.

Bsp:

echo 1 > /dev/ttyACM0 (erste LED soll leuchten)
echo 2 > /dev/ttyACM0 (zweite LED soll leuchten)
echo 3 > /dev/ttyACM0 (erste und zweite LED soll leuchten)
echo 8 > /dev/ttyACM0 (vierte LED soll leuchten)

Das ganze habe ich so umgesetzt:

Code:
#define pincount 4
int myPins[] = {2, 4, 6, 8};  
int i;
unsigned int incomingInt = 0;   // for incoming serial data
unsigned int value;

void setup() {

    for (i = 0; i < pincount; i = i + 1) {
      pinMode(myPins[i], OUTPUT);
    }
    Serial.begin(115200);     //
}

void loop() {
  
    if (Serial.available() > 0)
    {
      //read the incoming byte:
      incomingInt = Serial.parseInt();

      for (i = 0; i < pincount; i=i+1)
      {
        value= pow(2,i);
        if ((incomingInt & value) == value )        {
          digitalWrite(myPins[i], HIGH); // LED anschalten
        } else {
          digitalWrite(myPins[i], LOW); // LED anschalten
        }
      }

    }

}

Wahrscheinlich ist mein letzter Programmierkurs in C zu lange her....jedenfalls funktionieren die echos mit 1 und 2 wie erwartet.

Bei
Code:
echo 3 > /dev/ttyACM0
leuchten jedoch nicht die ersten beiden, sondern die ersten drei LED. Bei
Code:
echo 4 > /dev/ttyACM0
passiert überhaupt nix
Mit
Code:
echo 7 > /dev/ttyACM0
leuchten alle 4 LED. Bei
Code:
echo 15 > /dev/ttyACM0
leuchten auch alle.

Wo ist mein Denkfehler?

Schorsch
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.09.2013, 21:58
Beitrag #2
RE: Bitand funktioniert nicht wie ich es erwarte
Ich hab jetzt mal folgendes probiert:

Code:
void loop() {

for (j=0; j<16; j++)
{
      delay(1000);
      for (i = 0; i < pincount; i++)
      {
        value= pow(2,i);
        Serial.print("j:");
        Serial.print(j);
        Serial.print(" value:");
        Serial.println(value);
      }
}

}
Folgende Ausgabe bekomme ich:

Code:
j:7 value:1
j:7 value:2
j:7 value:3
j:7 value:7
j:8 value:1
j:8 value:2
j:8 value:3
j:8 value:7
j:9 value:1
j:9 value:2
j:9 value:3
j:9 value:7

Offenbar ist 2 hoch 3 = 7. Spinne ich jetzt total oder mein Arduino Leonardo?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.09.2013, 07:48
Beitrag #3
RE: Bitand funktioniert nicht wie ich es erwarte
Ich hab jetzt pow() durch folgendes erstetzt:
Code:
if (i == 0 ) {
      value = 1;
} else {
      value = 1 << i;
}
Damit funktioniert es.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Sad Sketch funktioniert auf dem Mega 2560 nicht Frank1234 14 242 22.03.2017 21:12
Letzter Beitrag: Frank1234
  Mein Skript macht nicht das was es soll ;( DerMatze79 4 125 16.03.2017 22:19
Letzter Beitrag: MicroBahner
  Programmablauf macht nicht das was ich möchte !! ESP + Blynk b3ta 3 158 01.03.2017 14:29
Letzter Beitrag: Tommy56
Rainbow File geht nicht zum compilieren!!!! Jocky 7 258 19.02.2017 20:01
Letzter Beitrag: Binatone
  IRremote bringe ich nicht zum laufen Franz54 5 183 19.02.2017 11:56
Letzter Beitrag: Tommy56
  Code aus 1.6.9 geht mit 1.8.1 nicht mehr zu kompilieren DL1AKP 7 364 02.02.2017 12:16
Letzter Beitrag: Tommy56
  Arduino Läst sich nicht Programmieren Micha06 4 254 29.01.2017 17:27
Letzter Beitrag: Micha06
  Nicht verzagen Forum fragen bergfrei 13 489 28.01.2017 06:09
Letzter Beitrag: dqb312
  Sloeber findet meinen Com Port nicht :-( Pfeilebastler 2 150 27.01.2017 11:11
Letzter Beitrag: hotsystems
  nRF24l01 empfängt Daten nicht techniclover 1 218 09.01.2017 19:20
Letzter Beitrag: celle

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste