Problem mit serieller Komunikation
Hallo, ich bin neu hier und habe ein kleines Problem. Ich versuche mit einem Atmega8 einen GPS-Empfänger auszulesen.
Der GPS-Emfänger geht problemlos am pc über RS232 und mit dem Hyperterminal.
Der Atmega8 gibt leider nür müll aufsDisplay
Das ist mein Code:
$regfile "m8def.dat"
$crystal = 4000000
Baud = 9600
Dim B As Byte
Dim X As Byte
Dim Y As Byte
Open "comc.0:9600,8,n,1,inverted" For Input As #1
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portb.6
Cursor Off
Display On
Cls
Locate 1 , 1
X = 0
Y = 1
Do
X = X + 1
If X = 9 Then Gosub Voll
Get #1 , B
Locate Y , X : Lcd Chr(b)
Loop
Voll:
If Y = 2 Then Cls
X = 1
Y = Y + 1
If Y = 3 Then Y = 1
Locate Y , X
Return
Was mache ich falsch?
Re: Problem mit serieller Komunikation
Zitat:
Zitat von RubaSon
Hallo, ich bin neu hier und habe ein kleines Problem. Ich versuche mit einem Atmega8 einen GPS-Empfänger auszulesen.
Der GPS-Emfänger geht problemlos am pc über RS232 und mit dem Hyperterminal.
Der Atmega8 gibt leider nür müll aufsDisplay
Das ist mein Code:
$regfile "m8def.dat"
$crystal = 4000000
Baud = 9600
Dim B As Byte
Dim X As Byte
Dim Y As Byte
Open "comc.0:9600,8,n,1,inverted" For Input As #1
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portb.6
Cursor Off
Display On
Cls
Locate 1 , 1
X = 0
Y = 1
Do
X = X + 1
If X = 9 Then Gosub Voll
Get #1 , B
Locate Y , X : Lcd Chr(b)
Loop
Voll:
If Y = 2 Then Cls
X = 1
Y = Y + 1
If Y = 3 Then Y = 1
Locate Y , X
Return
Was mache ich falsch?
Hoffentlich ist der GPS Empfänger über einen RS232 <> TTL Wandler an den Mega angeschlossen! Ich sehe in dem Code nicht wo die GPS Daten eingelesen werden? also z.B.
Code:
dim A as string * 50
input #1, a
LCD a
Wie Du dann den string verarbeitest um die GPS Daten zu sortieren musst Du in der Bascom Hilfe nachschauen. Tipp INSTR und deren Untertietel wie split und pos......
Gruß Richard
Ps.: Setze code immer zwischen codetags.[/quote]