-         

Ergebnis 1 bis 8 von 8

Thema: Problem mit Printbefehl

  1. #1

    Problem mit Printbefehl

    Anzeige

    Hallo miteinander.
    Ich hab ein problem mit dem Printbefehl.
    Ich gebe an ein Display mit RS232 einen Printbefehl doch vor dem eigentlichen String wird ein CR gesand. Das ist sehr hinderlich,da ich nicht
    auf der 1.Position den String im Display ausgeben kann.
    Hat jemand eine Idee, wie und wo ich das CR abschalten kann?

    Beste Grüße

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.02.2005
    Beiträge
    385
    ist CR = Carriage Return?
    sicher dass er vor dem String kommt?
    Also print "hallo" wäre dann CR ; "hallo"?
    Ich hab mal das Problem gehabt dass er nach dem String immer einen CR gesendet hat, das konnte man durch ein Semikolon am Ende des Print-Befehls lösen. Aber vor dem String, das ist mir neu.

    mfg
    jagdfalke

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.06.2004
    Ort
    Bad Schussenried in Oberschwaben
    Alter
    28
    Beiträge
    1.461
    HI!

    Sende doch einfach jedes Zeichen mit printbin aus.
    Dann hast du das Problem nicht.

    Ist aber etwas kompliziert. Bist du sicher, dass print CR vorher sendet?

    VLG Tobi
    http://www.tobias-schlegel.de
    "An AVR can solve (almost) every problem" - ts

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Hinten nach, wie dokumentiert, <CR><LF>, wenn kein ";"

    VOR dem Print schickt Bascom NIX

    Das würde sonst auch print-folgen für eine Zeile unmöglich machen.
    Auch Terminal-Emulationen fügen da aus dem gleichen Grunde nichts ein.

    Stell deinen ganzen Code mal ein, aber ohne irgendwelche Schönheitskorrekturen oder zusätzlichen Kommentare.
    Das wollen wir mal sehen, wenn du doch recht hast, darfst du dann einen ausgeben
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Gast
    Also der Printbin Befehl ist schon ok nur etwas umständlicher.
    Ich sende ja ganze strings und bei rintbin müßte ich alles auf Variablen legen und bei ca. 30 Textbausteinen ist es etwas umständlich .
    Ich versuch es nochmals mit dem Semikolon am ende.
    Vielleicht klappts ja dann.
    Danke Tratdem Allen

  6. #6
    zwanzischmark
    Gast
    Es ist richitg das Bascom nur <CR><LF> am ende senden sollte, jedoch habe ich das gleiche Problem. Es ist aber so das nach dem <CR> und <LF> noch ein <CR> gesendet wird was dann beim nächsten senden vor dem ersten Zeichen steht. Ich kann mir auch nicht erklären woher das kommt. Wenn du wie ich zwischen 2 AVR sendest kannst du das erste Zeichen auf Asc(10) abfragen und gegebenenfalls löschen. Sollte zumindest einfacher sein als mit Printbin. Nervig ist es allerdings trotzdem. Einzelfälle oder ein Fehler von Bascom??? Schon komisch wenns bei manchen auftritt und bei anderen nicht.

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Als BasCom-Supporter würde ich der Sache nachgehen wollen. Ihr könntet mir helfen, indem ihr den Code posten würdet, bei dem dieser Fehler auftritt, + Angaben Bascom Version, und auch mit Angabe, welche Terminal-Emulation ihr ggf. verwendet.
    Dann kann ich erstens ev. eine Workaround anbieten und zweitens auch dem BasCom-Entwickler reporten.
    wie gesagt, die ob. Angaben und den Code brauche ich genau.
    (Hex code reicht auch, dann aber Prozessortyp und Quartzangaben)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Ich sende ja ganze strings und bei rintbin müßte ich alles auf Variablen legen und bei ca. 30 Textbausteinen ist es etwas umständlich .
    Versuch's doch mal so..

    Code:
    $crystal = 16000000
    baud =9600
    
    
    Dim Sendestring As String * 20
    Dim Sendezeichen As String * 1
    
    Dim Meintext(5) As String * 20
    Dim N As Byte
    Dim S As Byte
    
    
    Meintext(1) = "HALLO"
    Meintext(2) = "WELT"
    Meintext(3) = "so"
    Meintext(4) = "gehts"
    Meintext(5) = "auch ;)"
    
    
    For S = 1 To 5
      Sendestring = Meintext(s)
      Gosub Senden
    Next S
    End
    
    
    Senden:
    For N= 1 to len (Sendestring)
      sendezeichen  = mid (sendestring,n,1)
      Printbin sendezeichen;
    Next N
    Return

    Gruß
    Christopher

Berechtigungen

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