Hat keiner eine Idee ??
Ich habe die Beschreibung gelesen und das Beispielprogramm durchgearbeitet, jedoch verstehe ich nicht wie ich die einzelnen Tasten bezeichne.
Also wenn Taste 1 gedrückt wird dann soll LED 1 leuchten.
Denn momentan geht nur wenn ( irgendeine ) Taste gedrück dann soll LED 1 leuchten.
Ich hab auch schon ein Code geschrieben der mir anzeigt was die Taster für Signale senden, doch diese sind etwas unverständlich.
z.B sendet Taster 1 " i□Ÿ□§ "
Weiß jemand wie die einzelnen Tasten benannt werden ?
Hat keiner eine Idee ??
@Mario94:
Die Tasten auf der M32 "senden" nichts.Ich hab auch schon ein Code geschrieben der mir anzeigt was die Taster für Signale senden, ...
Die Funktion getPressedKeyNumber() gibt dir die Nummer der gedrückten Taste aus. Darauf kann dein Programm dann reagieren.
Das Beispiel RP6Control_Button.c zeigt das genau. Da werden auch LEDs je nach gedrückter Taste eingeschaltet,- also genau das, was du willst.
Was fehlt dir noch?
Gruß Dirk
Was ich an der Sache nicht verstehe ist, wenn getPressedKeyNumber() mir die Nummer der aktuell gedrückten taste gibt kann ich ja nicht sagen:
if(key1) // 1 jetzt nur als beispiel für taste 1
{
setLEDs(0b0001)
}
Ich muss ja schon beim Programm schreiben wissen wie ich auf eine bestimmte Taste reagiere.
Genau so:
uint8_t key = getPressedKeyNumber();
if(key == 1) setLEDs(0b0001);
if(key == 2) setLEDs(0b0010);
....
Gruß Dirk
Danke, ich werds mal ausprobiern
EDIT: Es funktioniert, danke^^
In verbindung mit dem RP6 klappt es allerdings nicht so gut...
Hier der Code:
Hier die Fehlermeldung:Code:#include "RP6ControlLib.h" #include "RP6Control_I2CMasterLib.h" #include "RP6I2CmasterTWI.h" int main(void) { initRP6Control(); while(true) { uint8_t key = getPressedKeyNumber(); if(key == 1) { move(120,FWD,DIST_CM(25),true); } if(key == 2) { move(120,BWD,DIST_CM(25),true); } } return 0; }
C:\Users\Mario\Desktop\RP6 Loader\RP6-Programme\Tasten mit LED/TastenLED.c:15: undefined reference to `move'
Die Aufgabe ist :
- Wenn taste 1 gedrückt wird, fahr gerade aus ( 25 cm)
- Wenn taste 2 gedrückt wird, fahr rückwärts ( 25 cm)
Klar! Da an der M32 ja keine Motoren hängen, gibt es in der RP6ControlLib keinen Move-Befehl....undefined reference to `move'
Also: So einfach geht es nicht.
Hast du dich schon mit dem I2C-Bus beschäftigt, der die Base und M32 verbindet?
Gruß Dirk
nicht wirklich, was muss ich da lesen um zu verstehen wie es geht?
Oder brauche ich 2 Programme wo das eine sagt :
( M32 ) wenn taster 1 gedrückt sende befehl xy an Base
(RP6) wenn xy befehl von base kommt, fahre geradeaus
Genau!Oder brauche ich 2 Programme wo das eine sagt :
( M32 ) wenn taster 1 gedrückt sende befehl xy an Base
(RP6) wenn xy befehl von base kommt, fahre geradeaus
Gruß Dirk
Lesezeichen