Übermitteln eines Strings an 2.Atmel / Bascom

OP #987461
Lesenswert?

Hallo!


Ich benoetige einen Code.
Ich sitze nun schon eine Woche an einem Problem und bekomme es nicht 
gelöst.

Codeteil vom Sender:

....

Config Print0 = Portd.1 , Mode = Set

Config Pind.1 = Output                                      'set the 
direction yourself

Do

  Print "1234"


Codeteil vom Empfänger:


...

I1 = Inkey()
 If I1 <> 0 Then

var = Waitkey()

...

Ich habe auch schon diverse ander Varianten ausprobiert, leider ohne 
Erfolg : (
Es kommt auch was an, aber eben nicht das, was als string über Print 
Befel gesendet wird.

Kann mir jemend sagen wie ich einfach eine 4 - stellige Zahl an einem 2. 
Atmel übermitteln kann?

Thx schonmal!
OP #987714
Lesenswert?

Guten Morgen)

Mir ist noch etwas eingefallen)))

ueberall steht, das usc irgendwas auf 1 beim empfaenger gesetzt wird, 
wenn ein byte vollstaendig empfangen wurde. Mein 4-stellige Zahl wird 
doch aber sicher groesser als ein byte sein. D.h. wenn ich mit "if i 
groesser kleiner 0 then...." abfrage und dann auslese, werde ich nur 
bruchstuecke von der zahl haben !? Allerdings versteh ich nicht, wie ich 
dann zb nen ganzen text ans hyper terminal senden kann
#987756
Lesenswert?

Das Problem ist sehr komplex.

Du brauchst erstmal ein Protokoll, an dem der Empfänger eindeutig 
erkennen kann, wann die Zahl anfängt und wann aufhört, z.B. durch ein 
vereinbartes Start- und ein Endezeichen.

In einem Datenstrom "...123412341234123412..." ist das nicht möglich.

Dann braucht der Empfänger einen Puffer, in dem er die Bytes von 
Startzeichen bis zum Endezeichen sammelt.
Und sobald er das Endezeichen erkennt, übergibt er den Puffer an eine 
Funktion, die den String zurück in eine Zahl verwandelt.


Peter
Gast #987778
Lesenswert?

Na dann empfange einfach 4 Ziffern. Du mußt halt warten, bis eine Ziffer 
fertig empfangen ist. Beim experimentieren mit diesem Codeschnipsel wird 
es Dir klar werden. Später kannst Du den Code ändern (Array statt 
einzel-Bytes, Schleife ..)

Dim Z1 as Byte
Dim Z2 as Byte
Dim Z3 as Byte
Dim Z4 as Byte


do:loop until UCSRA.RXC=1 'warten bis ein Zeichen da ist
Z1 = UDR 'Daten lesen, in Z1 ist jetzt der Code für die erste Ziffer

do:loop until UCSRA.RXC=1 'warten bis ein Zeichen da ist
Z2 = UDR 'Daten lesen, in Z2 ist jetzt der Code für die zweite Ziffer

...

...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren