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; 
}