Hi, ich versuche gerade per Bascom eine String vom Pc zuempfangen und auszuwerten. Da ich leider die Stringlaenge nicht weiss wollte ich z.B. warten bis das String ein "A" (spaeter return) ist und somit die Laenge ermitteln. Leider komme ich nicht so richtig weiter... Ich hoffe jemand der eine Antwort parat hat kann mir helfen. $sim $regfile = "8535def.dat" $crystal = 7372800 $baud = 19200 Dim S As String * 24 Dim A As Byte A = 0 On Urxc Onrxd Enable Urxc Enable Interrupts Cls Main: Home If A = 1 Then Lcd "" ; S Else Goto Main End If Goto Main End 'end program Onrxd: If Chr(udr) = Chr(65) Then A = 1 Return Else S = S + Chr(udr) End If Return Mfg Dirk
Hallo dirk Schön für Dich ... ... aber da ich ein ähnliches Problem habe, wäre ich Dir sehr verbunden,wenn Du mir Dein jetzt funktionierendes BASCOM-Listing zur Verfügung stellen könntest. Ist das zu machen ? Bitte hier posten oder direktes email am mich
Hi, leider bin ich noch nicht wirklich viel weiter bekommen. Ich frage jetzt ein startbit ab und ein Stopbit ab. $sim $regfile = "8535def.dat" $crystal = 7372800 $baud = 19200 Dim S As String * 10 Dim A As Byte A = 0 On Urxc Onrxd Enable Urxc Enable Interrupts Cls Main: Home Lcd S Goto Main End 'end program Onrxd: If Asc(udr) = 97 Then A = 1 End If If Asc(udr) = 13 Then A = 0 End If If A = 1 Then S = S + Chr(udr) End If Return Mfg Dirk
Hallo, ich würde lieber mit dem Uart puffer in bascom arbeiten, und in einer do loop schleife den uart auslesen,nach erfolgreichen empfangen deines Strings natürlich nicht vergessen den puffer wieder zu leeren. $regfile = "8535def.dat" $crystal = 7372800 $baud = 19200 Config Serialin = Buffered , Size = 20 Enable interrupts dim s as string * 30 dim a as byte do a = ischarwaiting() if a <> 0 then gosub lesen loop lesen: dim f as byte Do F = Inkey() If F = 10 Then Exit Do Select Case F Case 0 Case 13 Case 10 Case Else S = S + Chr(f) End Select Loop cls lcd s wait 5 'Buffer wieder leeren do f = inkey() loop until f = 0 'Pointer auf 0 return Guck mal ob's so klappt, habe es jetzt noch nicht ausprobiert....müßte dir aber den empfangenen Text auf dem LCD anzeigen. Gruß Sven A.
uuppsss, nochwas vergessen, f natürlich in a umbenenen, sonst geht's nicht,sorry. Sven A.
Hi, ich glaube ich mache aus einer Mucke ein Elefanten. In meiner Routine lese auch alle Zeichen aus auch Startbit und Stopbit. Ich denke wohl einfach zu kompliziert. Ich weiss nur das erste Char das Startbit ist danach folgen ein paar Strings. z.B. (1100 oder 170) und danach das endbit. wie trenne ich den jetzt meine eigentlichen Daten von den Start- und Stopbit? @Sven A. : welche Vorteile hat es den meine Daten aus dem Uartbuffer auszulesen? Mfg Dirk
Hallo Dirk, Ich weiß ja nicht, ob das das einzige ist was dein Programm machen muß... laufen in einer Hauptroutine z.b. noch andere Abfragen, kann es Schwierigkeiten geben, das zeichen verlohren gehen... Startbit und Stopbit brauchst du nicht zu trennen, das wird von bascom selbst erledigt..... eigentlich müsstest du mit dem obrigen Listing deine gesendeten Zeichen auf dem Display sehen.... Gruß Sven A.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.