-
Soft COM
Hallo zusammen,
ich hab Probleme mit der Soft COM. Ich möchte via Soft COM die Daten eines GPS-Empfängers einlesen, verarbeiten und dann über die Hardware COM des Atmega an den PC ausgeben. Die Softcom macht aber sehr viel Fehler :(.
Hier mal der Code:
Code:
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 150 '40
$swstack = 150 '32
$framesize = 150 '60
Dim B As String * 100
Open "comd.2:4800,8,n,1" For Input As #2
Print "Warte auf Init..."
Wait 2
Do
Input #2 , B
Print "GPS= " ; B
Loop
Und hier das was dei Softcom liest:
GPS= jÓC,075646.835,V,0000.0000,N,00000.0000,E,,,090711 ,,*12
GPS= ÙfÌ,000,00,30,29,000,,09,26,000,00,10,25,000,00*79
GPS= $GPGGA,075651.835,0000.0000,N,00000.0000,E,0,00,50 .0,0.0,M,0.0,M,0.0,0000*7
8
Ich vermute stark, dass irgend wie ein Puffer fehlt? Kann das sein? Der String vom GPS-Empfänger ist ja relativ lang. Vielleicht läuft da ja was über...
Wäre echt super klasse, wenn jemand was wüst.
Vielen Dank und Grüße, Bernd
-
Hallo Bernd,
mein erster Gedanke wäre, es genau anders herum zu machen. Also GPS mit HW einlesen und die Komm zum PC in SW.
Hätte unter anderem den Vorteil, dass du beim Einlesen mit Interrupts oder Puffer arbeiten kannst. Bei der Ausgabe ist das nicht wesentlich.
-
Hi For_ro,
danke für die Antwort! Tja, nachdem ich die Platine fertig hab und alles bstückt hab und getestet hab: Hab ich das auch gedacht :mad: War ein Denkfehler meinerseits.
ABER...ich habs jetzt am laufen
Code:
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 57600
$hwstack = 150 '40
$swstack = 150 '32
$framesize = 150 '60
Dim B As String * 100
Print "Warte auf Init..."
Wait 2
Do
Serin B , 0 , D , 2 , 4800 , 0 , 8 , 1
Waitms 200
'Input #2 , B
Print B
Loop
Da das GPS Modul seine Daten "nur" mir 4800 Baud rausrück, scheint es ein Timing Problem zu sein. Hab jetzt die Kommunikation der Hardware-UART des M16 auf 54600 "beschleunigt" und siehe da....keine Probleme mehr *froi*. Jetzt hoff ich nur, dass mit den noch nötigen Berechnungen keine Timingprobleme auftauche.....man wird sehen :-)
Grüße, Bernd