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:
Mega8:Code:$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
Hoffe auf HilfeCode:$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
MfG







Zitieren
Lesezeichen