Forum: Mikrocontroller und Digitale Elektronik Bascom Frage


von Kay (Gast)


Lesenswert?

Hallo,

habe jetzt mal folgenden Code aus der Hilfe von Bascom übernommen:

$regfile = "8535def.dat"

$baud = 9600
$crystal = 4000000

Dim S As String * 8

Input S
Print S

End


Wenn ich mit einem Terminalprogramm nun einen String aus 8 Zeichen
sende, dann sendet der AVR mir die 8 Zeichen auch zurück. wenn ich
jetzt nochmal 8 Zeichen sende,  passiert garnix. Wie kann ich in Bascom
die Zeichen nach dem "Print S" löschen, damit ich die nächsten 8 mit
dem Terminalprogramm senden kann ?

mfg Kay

von Frank Linde (Gast)


Lesenswert?

Du brauchst nichts zu löschen. "Input S" liest den Wert für S ja neu
ein. Was Deinem Programm fehlt, ist eine Schleife um Input und Print.
So werden die beiden Befehle nur einmal durchlaufen und dann wird das
Programm beendet. Ich kenne Bascom nicht näher, aber schau mal in der
Hilfe unter FOR, WHILE, REPEAT und GOTO nach. Irgendetwas davon wird
Bascom schon unterstützen.

Gruß, Frank

von Kay (Gast)


Lesenswert?

Hallo Frank,

ich habe jetzt so ziemlich alle schleifen ausprobiert. Do ... Loop geht
nicht. mit For ... Next kann ich ja nur ne gewisse anzahl von Schleifen
machen. was ich brauche ist ja ne endlosschleife. dafür benutze ich
immer do ... loop , aber wie gesagt, das funzt net.

mfg Kay

von A. Arndt (Gast)


Lesenswert?

Hallo,

ich kenne zwar BASCOM auch nicht so genau, wie sieht es denn mit
"freien" Sprungmarken aus:

z.B.

W1:
A = A + 1

print a

goto w1



Gruss
A. Arndt

von Dirk (Gast)


Lesenswert?

Hi,

$regfile = "8535def.dat"

$baud = 9600
$crystal = 4000000

Dim S As String * 8
ECHO ON
DO
Input S
LOOP
End


Mit diesem Prg siehtse was du eintippst.


Mfg

Dirk

von Kay (Gast)


Lesenswert?

Hallo Dirk,

also bei mir hat das programm, welches du geschrieben hast, den
gleichen effekt, wie das programm, welches ich oben geschrieben habe.
ich seh immer nur die ersten 8 Zeichen die ich geschickt habe.

mfg Kay

von Dirk (Gast)


Lesenswert?

Hi,

bestaetigst du deine Eingabe auch mit "Return" ?
Eigentlich sollte angezeigt werden was du als letztes eingetippt hast.

Du kannst nochmal versuchen so den Stringinhalt in S zuloeschen
S = " "


Mfg

Dirk

von Heinz (Gast)


Lesenswert?

Hallo,
versuchs doch mal damit?

Heiz
------------------------
$regfile = "8535def.dat"

$baud = 9600
$crystal = 4000000

Dim S As String * 8
DO
   Input S
   Waitms 100
   Print S
LOOP
End
------------------------

von Kay (Gast)


Lesenswert?

hi,

klappt auch net. ich benutze das Programm AVR Terminal von Roland
Walter um Zeichenketten an meinen AVR zu senden. welches benutzt Ihr ?

mfg kay

von Marco Haufe (Gast)


Lesenswert?

Hast Du auch neu compiliert und in den AVR geladen ?
VG Marco

von Kay (Gast)


Lesenswert?

ja habe ich

mfg Kay

von HansHans (Gast)


Lesenswert?

Hallo ,
vielleicht hast Du in der Compiler / Chip -
Einstellungen zu wenig Speicher reseviert
je nach Chip :

HW Stack 64
Soft Stack 16
Framesize 32

Ist manchmal schuld, für viele Fehler wo es
offensichtich keine Erkärung gibt,
ging mir auch erst wider mal so mit
dem Befehl Fusing !


Gruss

von Kay (Gast)


Lesenswert?

hi,

das werde ich mal testen. danke

mfg Kay

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
Noch kein Account? Hier anmelden.