Wo liegt denn der Fehler?
Wahrscheinlich daran, dass aus 2 zusammengefügten Programmen nicht automatisch ein funktionsfähiges neues Programm wird.
Ich habe es nicht probiert, aber vielleicht wäre dies hier ein Anfang:
Du nimmst dir die RP6Base_I2CSlave.c und fügst in die Hauptschleife ein:
Code:
task_TVRemote(); // New TV Remote task!
Die Funktion task_TVRemote() fügst du über der Main ein:
Code:
/*****************************************************************************/
// Task TV Remote
/**
* This is a simple TV Remote task.
*/
#define RC5_KEY_FORWARDS 2
#define RC5_KEY_BACKWARDS 8
#define RC5_KEY_STOP 5
void task_TVRemote(void)
{
if (lastRC5Reception.key_code) {
writeString_P("Key Code: ");
writeInteger(lastRC5Reception.key_code, DEC);
writeString_P("\n");
/*
switch(lastRC5Reception.key_code)
{
case RC5_KEY_FORWARDS: // Drive forwards:
changeDirection(FWD);
moveAtSpeed(80, 80);
break;
case RC5_KEY_BACKWARDS: // Drive backwards:
changeDirection(BWD);
moveAtSpeed(80, 80);
break;
case RC5_KEY_STOP: // Stop:
// changeDirection(FWD);
moveAtSpeed(0, 0); // stop moving!
}
*/
lastRC5Reception.key_code = 0;
}
}
So, wie es ist, wird der RC5-Code nur auf dem Terminal angezeigt. Du kannst aber auch Fahrbefehle (Vorwärts, Stop, Rückwärts) geben.
Auf der ControlM32 kann dabei z.B. Example_08_I2CMaster laufen. Wenn du das UART-Kabel auf die M32 umsteckst, wird der RC5-Code auch am Terminal gezeigt.
Wie gesagt: Nicht getestet ... und sicher auch nicht optimal in das Ausgangsprogramm integriert ...
Gruß Dirk
Lesezeichen