PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Software UART - Problem



coCo
28.11.2006, 12:22
Hi,
ich habe versucht ein Software UART zwischen einem Mega8 und einem Mega32 mit Bascom zu realisieren. Das klappt bis jetzt auch einigermaßen, aber ich hab noch ein Problem:
Der Mega32 sendet einen String an den Mega8, der ihn dann ausgeben soll. Das Problem ist jetzt, dass der erste String den der Mega32 sendet, nicht richtig ankommt. Es kommen nur ein paar Buchstaben in beliebiger Reihenfolge an, danach jedoch kommt der ganze String an.

Außerdem muss ich beim Empfänger die Variable, in die der empfangene Wert gelegt wird, mit "Dim Tstr As String * 19" deklarieren, anstatt wie beim Sender mit "Dim Tstr As String * 20". Wenn ich das als String * 20 deklariere, kommt nur noch Buchstabensalat an...

Weiß vielleicht jemand woran das liegen könnte?

Hier noch die Codes:

Mega32:

$regfile = "m32def.dat"
$crystal = 16000000
$baud = 19200


Config Portc.0 = Output
Config Portc.1 = Input

Open "comc.0:19200,8,n,1" For Output As #1
Open "comc.1:19200,8,n,1" For Input As #2


Dim Var As String * 20

Var = "Hallo, wie geht es ?"

Do

Waitms 1

Print #1 , Var


Loop

End


Mega8:

$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200


Config Portd.2 = Input
Config Portd.3 = Output

Open "comd.3:19200,8,n,1" For Output As #1
Open "comd.2:19200,8,n,1" For Input As #2


Dim Tstr As String * 19
Dim ___lcdno As Byte



Config Lcdpin = Pin , E = Portc.1 , E2 = Portc.2 , Rs = Portc.0 , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portb.2 , Db7 = Portd.4
Config Lcd = 40 * 4

___lcdno = 0
Initlcd
Cls
Cursor Off

___lcdno = 1
Initlcd
Cls
Cursor Off



Do

Wait 2

Input #2 , Tstr
___lcdno = 0
Locate 1 , 1
Lcd Tstr

Loop

End

Hoffe auf Hilfe :)

MfG