-
        

Ergebnis 1 bis 6 von 6

Thema: Serielle Schnittstelle und Leerzeichen

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    Serielle Schnittstelle und Leerzeichen

    Anzeige

    Hallo RP6-ler,

    ich schicke in einem Programm mit writeChar(ch); einzelne ASCII-Zeichen zum Loader-Terminal, die Zeile beende ich jeweils mit writeChar('\n'); .
    Mein Problem ist dabei, dass in der Zeile auch mehrere Leerzeichen nacheinander vorkommen können, die genau so auch ausgegeben werden sollen.
    Leider schneidet die serielle Schnittstelle grundsätzlich nach 2 Leerzeichen alle weiteren ab. Ich helfe mir bis jetzt damit, dass ich anstelle von ' ' ein '_' ausgebe.

    Kann man das ändern?

    2. Frage:
    Gibt es auch die Möglichkeit, einzelne Zeichen sofort am Loader-Terminal anzuzeigen und nicht erst etwas zu sehen, wenn das Zeilenende erreicht ist?

    Gruß Dirk

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Das wird eine Beschränkung der Terminalsoftware auf der PC seite sein. Da gibt es mehr alternativen. Hyperterm gibt auch mehr als ein Freizeichen aus, und das auch sofort, ohne auf ein CR zu warten.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.09.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    988
    du kannst das Lehrzeichen auch als hex angeben des versteht jedes terminal prog. ist eh sinnvoller als ein \n zu senden.
    Legastheniker on Bord !

    http://www.Grautier.com - Projektseite
    http://www.grautier.com/wiki/doku.php?id=bt-index - BT-BUS

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Schau Dir mal die Ausgaben vom ERSTEN Beispielprogramm und vom Selbsttest an - jede Menge Leerzeichen hintereinander (schau Dir mal das Menü vom Selbsttestprogramm an... )

    Noch ein kleiner schneller Test...
    Code:
    Code:
    	writeString_P("\n\n   _______________________\n");
    	writeString_P("   \\| RP6  ROBOT SYSTEM |/\n");
    	writeString_P("    \\_-_-_-_-_-_-_-_-_-_/\n\n");
    
    	writeChar(' ');
    	writeChar(' ');
    	writeChar(' ');
    	writeChar(' ');
    	writeChar(' ');
    	writeString_P("Test");
    	writeChar('\n');
    	writeChar('\n');
    	
    	writeChar(' ');
    	writeChar(' ');
    	writeChar(' ');
    	writeChar('A');
    	writeChar(' ');
    	writeChar(' ');
    	writeChar(' ');
    	writeChar(' ');
    	writeChar(' ');
    	writeChar('B');
    	writeChar('C');
    	writeChar('D');
    	writeChar('\n');
    Ausgabe:
    Code:
       _______________________
       \| RP6  ROBOT SYSTEM |/
        \_-_-_-_-_-_-_-_-_-_/
    
         Test
    
       A     BCD

    Also poste mal Deinen Code denn das funktioniert eigentlich alles wunderbar.



    Zur 2. Frage:
    Das ging früher mal - aber mit einführung der Displays nicht mehr weil hier der empfangene Text überprüft wird um zu schauen ob Daten für die Displays ankommen. Diese Steuercodes dürfen natürlich nicht im Terminal auftauchen und an einzelnen Zeichen kann man das nur schlecht erkennen.

    MfG,
    SlyD

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    denn das funktioniert eigentlich alles wunderbar
    Ups!

    Da muss ich wohl noch mal mein Programm checken.

    Gruß Dirk

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    @SlyD:
    Ja, es lag an mir.

    Fehler:
    Ich schreibe oft an Progs und Libs auf einem anderen Computer, nehme dann die Teile auf USB-Stick mit und kopiere sie über alte Versionen auf meinem Haupt-PC, an den auch der RP6 angeschlossen ist.

    Ich habe also eine neue Lib auch so kopiert, in der keine Begrenzung von Leerzeichen vorkam. Im RP6Lib-Verzeichnis waren aber noch die Dateien "XYZ.lst" und "XYZ.o" der alten Lib-Version. Daher wurde meine neue Lib wohl nicht neu kompiliert und die alte wurde immer eingebunden. In der wurden Leerzeichen noch begrenzt.

    So kanns gehen, wenn man nicht aufpasst!

    Gruß Dirk

Berechtigungen

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