PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Printbefehl



ElektronikLutz
02.07.2005, 18:31
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

jagdfalke
02.07.2005, 19:31
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

tobimc
02.07.2005, 19:42
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

PicNick
03.07.2005, 08:54
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

04.07.2005, 19:59
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

zwanzischmark
04.07.2005, 23:23
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.

PicNick
05.07.2005, 09:26
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)

chr-mt
05.07.2005, 16:35
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..



$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