Blöde Sache. Schau mal in Help
$SERIALOUTPUT
Da müßtest du eine Wait-Schleife dazubauen .
Hi Leute,
bin noch ein totaler Bascom anfänger und habe eine frage an euch. Wie kann ich, wenn ich einen String mit dem Print befehl sende, eine Zeichenverzögerung von 1ms einstellen? Habe mir vor kurzem bei ELV das On-Screen-Modul gekauft. Dieses funktioniert, wenn ich es am Pc anschließe und im Hyperterminal die Zeichenverzögerung auf 1ms einstelle, so wie es in der anleitung steht, auch perfekt. Allerdings möchte ich das Modul in meinem Auto nutzen und per µc steuern. Dieses klappt leider nicht. Ich denke das es an der Zeichenverzögerung liegt, da sporadisch mal irgendwelche Zeichen angezeigt werden. Oder hängt das vielleicht mit der Flusssteuerung zusammen, die man im Hyperterminal auch ausstellen muss?
Hier mal mein Code, mit dem es am Rechner perfekt läuft.
Set Porta.1 ist nur dafür da, um eine led zu steuern.Code:'AVR ATMega32 $regfile = "m32def.dat" 'Quarz-frequenz 16.00000 MHz $crystal = 16000000 'Baud-Rate Serieller Port $baud = 9600 Config Porta = Output Config Portd = Output Set Porta.1 Print "Hallo du da! wie geht es dir? Mir geht es gut. Hoffe dir auch. Bis dann." End
Hoffe ihr könnt mir helfen. Bekomme das problem nicht in den griff und versuche es schon seit 2 Wochen.
MfG Tretsch
Blöde Sache. Schau mal in Help
$SERIALOUTPUT
Da müßtest du eine Wait-Schleife dazubauen .
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Eins von beiden muß gehen.A oder B
Zwar nicht getestet .... aber ...Code:Dim Buchstabe As Byte Dim B As String * 1 Dim Position As Byte Dim S As String * 50 S = " Hello World " For Position = 1 To Len(s) 'A B = Mid(s , Position , 1) Buchstabe = Asc(b) Print Chr(buchstabe) Waitms 1 Next Position For Position = 1 To Len(s) 'B B = Mid(s , Position , 1) Print B Waitms 1 Next Position
Gento
Hab jetzt mal beide Versionen von Gento ausprobiert. Aber alles was angezeigt wird ist sind irgendwelche symbole. Habs gerade nochmal am Rechner gehängt und wenn ich die zeichenverzögerung auf 1ms setze und die flusssteuerung auf "kein" dann funktioniert es prima.
Wofür ist eigentlich die Flusssteuerung. Kann es was damit zu tun haben?
Tretsch
Die Flusssteuerung ist dazu da wie der Name schon sagt um den Datenfluß zusteuern. Es gibt zwei Möglichkeiten, oder besser drei. Hardware, Software oder keine.
Das heißt mit der Flusssteuerung sagt das eine Gerät dem andren ob es bereit ist Daten zu empfangen oder nicht. Aber darüber findest du genug im Internet unter RS232.
Ich glaube aber dass dein Display die Flusssteuerung nicht unterstützt, darum die 1ms Wartezeit zwischen jedem Zeichen.
Als erstes würde ich mal die Geschwindigkeit runter setzen also baud = 300. Natürlich im Display und im Controller.
Dann erst mal zum Beispiel bei einem Tastendruck ein Zeichen senden, oder in einer Schleife mit Verzögerung immer ein Zeichen senden.
Beispiel:
For i = 1 to 100
Print "a"
Wait 1
Next i
Man muß das Problem eingrenzen. Wenn du so jede Sekunde ein "a" auf dem Display siechst, dann weis du das die Hardware und alles in Ordnung ist. Dann erst versuchst du ein Satz zusenden.
mfg
Guy
*grmpf*
Männer, wenn ihr zeichenweise senden wollt, müßt ihr auch zeichenweise senden.
Das sind z.B DREI Zeichen
nämlich "a" + <CR> + <LF>Print "a"
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Spiel bei ihm ja keine Rolle, weil die restlichen Zeichen ja einfach verloren gehen.
oder eben so
Print "a";
danke Leute. Mit
Print "A";
hat es funktioniert.
Dieses klappt zwar nicht mit texten, habe mir dafür aber 'ne function gebaut die das zerlegen für mich übernimmt.
Tretsch
Lesezeichen