PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Soft COM



bernd33-1
09.07.2011, 09:00
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:


$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

for_ro
09.07.2011, 11:55
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.

bernd33-1
09.07.2011, 12:34
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



$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