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