kannst du mir al deine Codes zu testen des Input-Befehls geben? das wäre super !!
mfg
jagdfalke
Druckbare Version
kannst du mir al deine Codes zu testen des Input-Befehls geben? das wäre super !!
mfg
jagdfalke
ihr könnt einen string nicht mit einem wort vergleichen. visualbasic/delphi empfängt immer nur string, wenn ich dann eine zahl haben möchte , muss die mit "val" aus dem string ziehen.. bascom kann aber auch zahlen versenden die dann immer bei visualbasic als string erscheinen. da ein wort 2 byte hat, erscheinen immer nur deine beiden letzten buchstaben extra.
mfg pebisoft
Hi, wir haben das Problem in den Griff bekommen: Das VB/Dephi Program sammelt einfach solange die Strings bis der Zeilenumbruch kommt:
@pebisoft:Code:procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
Str: String;
position: integer;
const
strUmbruch = #13 + #10;
begin
ComPort.ReadStr(Str, Count);
Serial_in := Serial_in + Str;
position := pos(strUmbruch, Serial_in);
if position <> 0 then
begin
Delete(Serial_in, length(Serial_in)-1, length(serial_in));
listbox1.items.add(Serial_in);
Serial_in := '';
end;
end;
Und wie funktioniert das beim Senden von Strings an das Board?
mfg
jagdfalke
@jagdfalke
Ich habe genau deinen Code verwendet und nur aus der Word-Variablen eine String-Variable gemacht.Zitat:
kannst du mir al deine Codes zu testen des Input-Befehls geben? das wäre super !!
Bei mir tritt aber wie gesagt dasselbe Problem auch, je nach Grösse die ich für den String reserviere, kann ich halt nur mehr Zeichen senden bevor der Controller aufgibt.Code:$regfile = "m32def.dat"
$baud = 9600
$crystal = 8000000
Dim Serial_in As String 20
Do
Input Serial_in
Waitms 100
Print Serial_in;
Waitms 100
Loop
End
Bei mir hat es auch nichts damit zu tun, wie oft ich etwas sende, sondern nur damit wieviele Zeichen ich insgesamt sende.
Ja das kann natürlich auch sein, so genau hab ich mir das noch nicht angeschaut.Zitat:
Bei mir hat es auch nichts damit zu tun, wie oft ich etwas sende, sondern nur damit wieviele Zeichen ich insgesamt sende.
Hat irgendjemand ne Lösung? Wir bekommt ihr die Kommunikation zwischen PC und Board hin?
mfg
jagdfalke
ich hänge einfach den code "cr" bzw chr$(13) dran, dann wird dieser vom avr ausgewertet. ich benutze winavr-c. aber bascom müsste das auch so machen.
mfg pebisoft
Du machst es also genauso wie in meinem Codebeispiel? Und wozu das $chr(13)? Das hab ich net kapiert..
mfg
jagdfalke
das ist der ASCII Code für ein Carriage Return- , oder auch Wagenrücklauf-, oder auch Zeilenende-Zeichen.Zitat:
Und wozu das $chr(13)? Das hab ich net kapiert..
Entspricht dem Drücken der Enter-Taste.
Kann gut sein, dass Bascom keine neuen Input-Zeichen mehr animmt, weil es auf ein "Enter" wartet und VB das nicht automatisch mitsendet.
oh ja, das ist ne gute theorie. muss ich gleich ausprobieren !!!
Funktioniert wundertbar.
thx