Asuro PollSwitch() für Anfänger
Hallo Board Mitglieder,
ich beschäftige mich noch nicht lange mit Asuro und stehe sozusagen eigentlich noch ganz am Anfang der Programmierung von Asuro. Ich versuche gerade die verschiedenen Knöpfe mit an Asuro mit verschiedenen Funktionen zu belegen, ich hab mir dazu mal den Quellcode des Selftests angesehen und hab dann versucht einen Knopf mit einer Funktion zu belegen, ich häge hier mal den Code an:
Code:
#include "asuro.h"
unsigned char sw1, sw2;
int main(void){
Init();
StatusLED(OFF);
FrontLED(OFF);
BackLED(OFF,OFF);
sw1=PollSwitch();
sw2=PollSwitch();
if (sw1 || sw2 && 0x01){
StatusLED(RED);
Msleep(200);
StatusLED(GREEN);
Msleep(200);
StatusLED(YELLOW);
Msleep(200);
}
StatusLED(OFF);
BackLED(OFF,OFF);
FrontLED(OFF);
while(1);
return(0);
}
Nur passiert nichts, egal auf welchen Knopf ich drücke, was hab ich am Code falsch gemacht ?
Gruß DoubleU
PS: Ich muss auch sagen, dass ich noch nicht all zu viel Erfahrung in C# habe.
neuer ASURO Freund braucht Hilfe!
Hallo Leute,
ich bin nun auch einer von vielen ASURO- Besitzern und wie viele andere auch dachte ich nicht das C/C++ für Anfänger solche Probleme macht. :)
Zum Thema, ich hatte die gleiche Idee wie "Doubleyou" und möchte erst einmal die einzelen Sensoren genauer kennen lernen und verstehen.
Mit Hilfe des Forum und der Anleitung bin ich bisher zu follgenden Ergebnis gekommen:
Code:
#include "asuro.h"
unsigned char taste;
int main(void)
{
Init();
while(1){
taste = PollSwitch();
if ((taste>0) && (PollSwitch()>0) & 0x01) {StatusLED (GREEN);}
else if ((taste>0) && (PollSwitch()>0) & 0x02) {StatusLED (RED);}
else if ((taste>0) && (PollSwitch()>0) & 0x04) {FrontLED (ON);}
else if ((taste>0) && (PollSwitch()>0) & 0x08) {BackLED (OFF,ON);}
else if ((taste>0) && (PollSwitch()>0) & 0x16) {BackLED (ON,OFF);}
else if ((taste>0) && (PollSwitch()>0) & 0x32) {BackLED (ON,ON);}
else {StatusLED(OFF);BackLED(OFF,OFF);FrontLED(OFF);}
}
while(1);
return 0;
}
Zur Erklärung:
Als erstes habe ich mir eine Variable"taste" angelegt.
Die Variable erhält innerhalb der Schleife den Wert des Pollswitch.
Falls nun ein PollSwitch gedrückt wird und er den Byte 1 entspricht und dieses zusammen gleich der "taste" ist, dann soll die StatusLED grün leuchten.
anderenfalls, falls nun ein Pollswitch gedrückt wird und er den Byte2 entspricht und dieser gleich der "taste" ist, dann soll die StatusLED rot leuchten.
.
.
.
wenn nichts gedrückt wird sollen alle LED´s aus sein.
---------------------------------------------------------------------------------
Mein Problem ist nun, dass die grüne Status LED auf jeden Taster anspringt und nicht wie eigentlich gewollt nur an K6.
Könnt ihr mir bitte zu einen Erfolgserlebniss verhelfen?
EDIT//
Hhmm, ist es richtig das meine Variable nie den Wert2,4,8,16,32 erhält und da das Problem liegt???
EDIT2//
Nein, das ist falsch, oder? Ich frage ja nur ab ob "taste" & "PollSwitch" größer 0 ist. Liegt der Fehler in der Byte abfrage?
Gruß zoerby