Hi Zusammen,
ich versuche wieder mal meine lernfähige Fernbedienung anzulernen und hab folgendes Programm geschrieben (bzw. einen Teil davon hier aus dem Forum kopiert - speiziell die Eingabe über den Terminal)
Was ich ned kapier ist, dass sobald ich nach der ersten Eingabe (zB.: 20) kein Code gesendet wird... und bei der zweiten Eingabe (zB: 35) wird erst dann der rc5code 20 gesendet...!?
Eingabe am Terminal zB: 20... 35... 16... 11...
Ausgabe am Terminal: 20... 35... 16... 11...
Gesendete RC5codes: NIX... 20... 35... 16...
Ergo sendet RP6 immer den Code den ich bei der VOR-VOR-herigen Eingabe am Terminal eingegeben habe. Und ich weiß ned warum... Wo liegt der Denkfehler? Die Ausgabe am Terminal passt ja auch!?
THX für eure Hilfe
Code:#include "RP6RobotBaseLib.h" // Globale Variablen definieren -------------------------------------------------------- char rc5code[15]; // rc5code Type Cahr uint8_t rc5codeint; // rc5code Type Integer // Funktion Code einlesen -------------------------------------------------------------- char i; void codeEinlesen(void) { i=0; do { while(!getBufferLength()); //warten solange keine Zeichen im Buffer while(getBufferLength()) // Zeichen aus Buffer einlesen rc5code[i++]=readChar(); } while((i<10) && (rc5code[i-1] != '\n')); } // Funktion Code senden ---------------------------------------------------------------- uint8_t x=0; void codeSenden(void) { while(x<5) // Der rc5code wird 5 mal zu je 20ms gesendet (Pause 200ms) { IRCOMM_sendRC5(17|TOGGLEBIT,rc5codeint); mSleep(200); x++; } } // ------------------------------------------------------------------------------------- // ------------------------------------------------------------------------------------- // ------------------------------------------------------------------------------------- int main(void) { initRobotBase(); powerON(); while(true) { writeString_P("Bitte RC5 Code eingeben, welcher gesendet werden soll:"); writeString_P("\n"); codeEinlesen(); sleep(50); clearReceptionBuffer(); rc5code[i]=0; // Endekennung String nach letztem Zeichen rc5codeint = atoi(rc5code); // rc5code -> Char to Integer writeString_P("RC5 Code "); writeInteger(rc5codeint, DEC); writeString_P(" wird gesendet..."); writeString_P("\n"); task_ACS(); codeSenden(); x=0; } return 0; }







Zitieren

Lesezeichen