- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: Problem mit UART-Progrämchen

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    29
    Beiträge
    661

    Problem mit UART-Progrämchen

    Anzeige

    Powerstation Test
    Hi,

    ich wolt mit meinem RP6 mal ein Programm schreiben indem er mit mir komuniziert.
    Ich hab dazu erst mal ein Test-Progrämmchen geschrieben um mich einzu arbeiten.
    Das funktioniert aber leider nicht. Kann mir jemand helfen? Danke

    Code:
    #include "RP6RobotBaseLib.h"
    
    
    
    
    int main(void){
    setLEDs(0b000000);
    writeString("Hallo lass uns starten\n");
    writeString("Schreibe mal bitte zwei Chars ins Terminal\n");
    
    uint8_t charsToReceive = 2;
    char receiveBuffer[charsToReceive+1]; 
    clearReceptionBuffer();
    
    uint8_t cnt;
    for(cnt = 0; cnt < charsToReceive; cnt++) {
    receiveBuffer[cnt]=0;
    }
    uint8_t buffer_pos = 0;
    while(true){
    if(getBufferLength()){
    receiveBuffer[buffer_pos] = readChar();
    if(receiveBuffer[buffer_pos]=='\n')
    {
    receiveBuffer[buffer_pos]='\0';
    buffer_pos = 0;
    break;
    }
    }
    buffer_pos++;
    }
    writeChar('\n');
    writeString(receiveBuffer);
    writeString_P("\n");
    return 0;
    }
    MfG Martinius

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Martinius:
    Vielleicht guckst du dir mal dieses sinnfreie Progrämmchen an:
    https://www.roboternetz.de/community...l=1#post510826
    Gruß
    Dirk

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    29
    Beiträge
    661
    ich hab mein programm mal deinem nachenpfunden aber es will nicht klappen:

    Code:
    #include "RP6RobotBaseLib.h"
    
    char Buffer[UART_RECEIVE_BUFFER_SIZE + 1];
    
    
    uint8_t Eingabe(void){
    
    
    
    uint8_t buffer_pos = 0;
    if(getBufferLength()){
    Buffer[buffer_pos]=readChar();
    if(Buffer[buffer_pos]=='\n'){
    Buffer[buffer_pos] = '\0';
    return true;
    }
    else if(buffer_pos >= UART_RECEIVE_BUFFER_SIZE) {
       Buffer[UART_RECEIVE_BUFFER_SIZE] = '\0'; 
       buffer_pos = 0;
       return 2;}
    buffer_pos++;
    }
    return 0;
    }
    
    void Warten(void){
    
    while(!Eingabe());
    
    }
    
    int main(void){
    
    
    
    
    setLEDs(0b000000);
    writeString("Hallo lass uns starten\n");
    writeString("Schreibe mal bitte zwei Chars ins Terminal\n");
    
    
    
    Warten();
    
    
    
    
    writeChar('\n');
    writeString(Buffer);
    writeString_P("\n");
    return 0;
    }
    MfG Martinius

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Martinius:

    1. In Main immer: initRobotBase();
    Sonst funktioniert nichts!

    2. buffer_pos als "static" deklarieren!

    3. Anstelle von:
    Buffer[buffer_pos] = '\0';
    return true;

    ... muss da in der Funktion Eingabe() stehen:
    Buffer[buffer_pos] = '\0';
    buffer_pos = 0;
    return 1;

    Dann sollte es klappen!
    Gruß
    Dirk

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    29
    Beiträge
    661
    Zitat Zitat von Dirk Beitrag anzeigen
    @Martinius:

    1. In Main immer: initRobotBase();
    Sonst funktioniert nichts!
    Also sorry für das da hät ich selbst drauf kommen können,
    hab wohl in letzter zeit zu viel minecraft gespielt. Aber
    danke jetzt klappt es. Du bist der beste
    MfG Martinius

Ähnliche Themen

  1. ATMega32 UART problem --> Problem gelöst
    Von ChristophB im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 12.03.2010, 19:45
  2. Problem mit UART
    Von daniel.weber im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 29.04.2008, 13:56
  3. UART Problem
    Von Xeus im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 07.07.2007, 14:25
  4. Problem mit UART
    Von max... im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 03.02.2007, 14:33
  5. Problem mit UART
    Von Mule im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 07.10.2005, 16:58

Berechtigungen

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

Solar Speicher und Akkus Tests