Wei? niemand Rat?
@Trabukh:
Schau dir mal den letzten Bascom Code an den ich gepostet hab. Das mit dem Semikolon haben wir schon raus jetzt. Die Zeilenumbrüche sind weg.
Was jetzt noch stört, ist dass bei z.B.:
do
print "hallohallo";
wait 1
loop
in einer listbox das hier raus kommt:
hallohal
lo
hallohal
lo
hallohal
lo
usw...
Wei? niemand Rat?
Das Problem ist ja eigentlich nur, dass er einem Strings der länger ist als 8 zeichen zwei Strings draus macht. Ist das normal?
Was heisst schon "normal". Mit dem Beispielcode den ich dir weiter oben gepostet habe, macht er bei mir jedenfalls auch bei Strings mit mehr Zeichen keinen Umbruch.Das Problem ist ja eigentlich nur, dass er einem Strings der länger ist als 8 zeichen zwei Strings draus macht. Ist das normal?
Hast du mal mit einem Terminal-Programm ausprobiert, ob der String schon zerstückelt von deinem µC ankommt, oder ob er erst in deinem VB, bzw. Delphi Programm zerhackt wird?
Der String wird definitiv erst im Programm zerhackt.
Ausgabe im Terminal:
hallohallo
hallohallo
hallohallo
hallohallo
usw
Ausgabe im Programm:
hallohal
lo
hallohal
lo
hallohal
lo
Um mal das Problem zu wechseln und ein bischen Abwechlung hier rein zu bringen: Warum zum Geier funktionert das hier schon wieder nicht:
Bascom-Code:
Delphi-Code:Code:$regfile = "m32def.dat" $baud = 9600 $crystal = 8000000 Dim Serial_in As Word Mainloop: Do Input Serial_in Waitms 100 Print Serial_in; Waitms 100 Loop Goto Mainloop End
Was ich nach dem Write-Befehl über das Terminal emfange sind immer nur die ersten paar Stellen von dem was ich gesendet hab. Ist vielleicht der Typ Word nicht groß genug? Gibts was größeres? Und nachdem er die ersten paar Stellen über print rausgeschickt hat, geht garnix mehr. Ich muss das Programm im Controller neu starten, damit ich wieder einen String schicken kann. Is doch seltsam oder? Stimmt vielleicht mit dem Board was nicht?Code:procedure TForm1.Button1Click(Sender: TObject); var send_str : String; begin send_str := Edit1.text; ComPort.WriteStr(send_str); end;
mfg
jagdfalke
hi,
ich bin mir jetzt nicht sicher aber ich denke, dass des an dem "doppelgemoppel" liegt...ich würd mal sagen ENTWEDER
Mainloop:
....
....
Goto Mainloop
ODER
Do
....
....
Loop
aber wie gesagt, ich bin mir nicht sicher und ich weiss auch nicht ob das das problem ist...
gruss hacker
Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!
Glaube ich nicht.ich bin mir jetzt nicht sicher aber ich denke, dass des an dem "doppelgemoppel" liegt
Der Controller wird innerhalb der inneren do-loop Schleife seine Kreise ziehen. Dass da aussen nochmal eine Schleife drum ist, macht nicht viel Sinn, sollte aber eigentlich auch nicht schaden.
sehe ich auch so
@jagdfalke
hast du dir mal die Eigenschaften der verschiedenen Objekte (Textfelder, MSComm, usw.) die du in deinem Programm verwendest genau angesehen?
Vielleicht hast du da ja irgendwo die Feldlänge, Buffergrösse oder irgendwas ähnliches begrenzt.
Ich habe aus meinem Testcode mal eine exe compiliert. Kannst du dir ja HIER mal runterladen und ausprobieren. Bausrate ist 9600.
Lesezeichen