- LiFePO4 Speicher Test         
Ergebnis 1 bis 2 von 2

Thema: rc5code senden

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    26.10.2008
    Ort
    Wien
    Alter
    44
    Beiträge
    38

    rc5code senden

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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; 
    }

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    26.10.2008
    Ort
    Wien
    Alter
    44
    Beiträge
    38
    Hi,

    wollte mal nachfragen ob mir keiner helfen kann, weil er das Problem noch nie hatte oder weil meine Problemstellung nicht gut erklärt ist?

    Danke...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress