-
Vorsicht, nicht jeder GPS-Empfänger wird mit 5V versorgt. Am besten wäre natürlich wenn du den Hersteller und die Produktbezeichnung rausbekommen könntest. Dann könntest du im Datenblatt nachschauen. Aber wenn schon Zahlen auf dem Display erscheinen scheint der GPS-Empfänger noch am leben zu sein
Da es mit dem GPS-Empfang im Haus ja schlecht bestellt ist, hab ich einen GPS-Simulator zum testen benutzt. Einfach statt den GPS-EMpfänger den PC anschließen. Nur bräuchtest du dann wieder ein ein USB-RS232-Wandler.
Ich habe den benutzt: http://www.atlsoft.de/index.php/GPS%.../kat/74/menu/1
Gruß
Euro
-
ich weiß, aber ich habe auf einer hp gelesen, dass der gps-empfänger aller ipaq h39XX mit 5V versorgt wird ;-)
wie kann ich diese zahlen den auswerten??
das prog von der hp:
Code:
'rmcdec1
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 4800
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5
Config Lcdbus = 4
Cls
Cursor On Blink
Dim C As Byte
Dim I As Byte
Dim Time As String * 6
Dim Av As String * 2
Dim Lat As String * 8
Dim Ns As String * 2
Dim Lon As String * 9
Dim Ew As String * 2
Dim Spd As String * 6
Dim Crs As String * 6
Dim Leng As Byte
Dim Mrk As String * 2
Dim Xx As Bit
Declare Sub Wait_for_string(byval S As String)
Declare Function Read_string() As String
Wait 1
Upperline
Lcd "WAITING FOR DATA"
Wait 3
Mrk = "-"
Config Serialin = Buffered , Size = 100 ' Konfig. der ser. Eingabe
Enable Interrupts
' $GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,ddmmyy,x.x,a*hh
Do
Call Wait_for_string( "$GPRMC,") ' Warte auf $GPRMC
Time = Read_string()
Av = Read_string()
Lat = Read_string()
Leng = Len(lat) - 1
Lat = Left(lat , Leng)
Ns = Read_string()
Leng = Len(ns) - 1
Ns = Left(ns , Leng)
Lon = Read_string()
Leng = Len(lon) - 1
Lon = Left(lon , Leng)
Ew = Read_string()
Leng = Len(ew) - 1
Ew = Left(ew , Leng)
Spd = Read_string()
Leng = Len(spd) - 1
Spd = Left(spd , Leng)
Crs = Read_string()
Leng = Len(crs) - 1
Crs = Left(crs , Leng)
Upperline
Locate 1 , 2
Lcd Lat ; Ns
Locate 1 , 12
Lcd Spd
Lowerline
Lcd Lon ; Ew
Locate 2 , 12
Lcd Crs
If Av = "V," Then Av = "*"
If Av = "A," Then Av = " "
Locate 1 , 1
Lcd Av
If Xx = 1 Then Mrk = "-"
If Xx = 0 Then Mrk = "+"
Toggle Xx
Locate 1 , 11
Lcd Mrk
Loop
End
'------------------------------------------------------
Sub Wait_for_string(byval S As String) As String
Local Ii As Byte
Local Cc As Byte
Ii = 1
M1:
Cc = Inkey()
If Cc <> Mid(s , Ii , 1) Then
Goto M1
Else
Incr Ii
If Ii > Len(s) Then Goto M2
Goto M1
End If
M2:
End Sub
'------------------------------------------------------
Function Read_string() As String
Local Cc As Byte
Local Ss As String * 10
Ss = ""
Do
Cc = Inkey()
Ss = Ss + Chr(cc)
Loop Until Cc = ","
Read_string = Left(ss , 10)
End Function
End
funzt bei mir leider nicht. weder aufm chip, noch im simulator!!
ich hätte mir schon gedacht, dass ich vielleicht eine taste zum starten drücken muss, allerdings habe ich nichts dergleichen im prog gefunden.
nach ein paar sec steht die ganze zeit "waiting for data" aufm display. :-(
woran liegt das?? hat jemand eine idee??
das mit gps und haus und so weiß ich, hab das teil immer ausm fenster gehalten, wenn ichs probiert hab, hat aber nichts gebracht (bei dem obigen code) :-(
bitte, ihr müsst mir helfen?!?!
danke für eure bemühungen.
gruß
chris
-
ich weiss nich ob das hier schon erwähnt wurde (hatte keine zeit mir alles durchzulesen) aber die Positionsdaten werden meist von gps modulen in HEX Code angegeben. den must du nur noch für n Atmel verständlich machen. Dann is alles klar.
-
und wie wandle ich hex daten in einen anderen datentyp um (welcher ist überhaupt sinnvoll), damit sie der atmega lesen kann??
-
Wenn auf dem Display "WAITING FOR DATA" steht scheint das programm bis dahin zu funktionieren. Anschließend wartet das Programm ja bis über die serielle Schnittstelle die Zeichenfolge "$GPRMC," kommt (Anfang des GPS-Satz). Ich würde jetzt mal tippen, dass halt das nicht funktioniert.
Ist nur die Frage woran das liegt?
-Falsche verkabelung
-Falsche Baudrate (mein GPS-Empfänger arbeitet mit 9600Baud)
-GPS-Empfänger gibt die Daten nicht im NMEA Format aus
-
Hallo Che Guevara, schau mal in den Downloadbereich von www.inter-save.com
Dort sollte alles stehen, was Du brauchst. Vom Sourcecode für den AVR, bis zum Auswerten der empfangenden Daten auf dem PC. Auch ein Tutorial zu diesem Thema gibt es dort.
Peter
-
hallo
Zuerst einmal braucht der GPS Empfaenger zeit sich zu initalisieren,(Zeit einlesen,Positions-Daten der Sat. und noch einiges bis dahin werden nur 00000000 über RS232 gesendet ,kann bis zu 5Min. dauern.
4800 baud sind richtig
Hier ein Beispiel,ist leider nicht Dokomentiert ist aber leicht zu lesen
Gruß raggy
Code:
'$GPRMC,001300.955,V,0000.0000,N,00000.0000,E,,,101102,,*1C =70 byte
'$GPVTG,,T,,M,,N,,K*4E
'$GPGGA,001301.955,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*7C
'$GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05
'$GPGSV,1,1,01,32,00,000,00*49
'DATEN des GPS HI 204S
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 4800
$hwstack = 32 'hardware stack
$swstack = 10 'software stack
$framesize = 42 'frame space
Dim K As String * 20
Dim S As String * 70
Dim Ost As String * 12
Dim Nord As String * 12
Dim Speed As String * 5
On Urxc Onrxd
Enable Urxc
Enable Interrupts
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2
'Config Porta = Output
Config Lcd = 20 * 2
Main:
Goto Main
Onrxd:
S = S + Chr(udr)
If Len(s) = 70 Then
S = Mid(s , 2 , 70)
End If
K = Mid(s , 1 , 6)
Ost = Mid(s , 33 , 12)
Nord = Mid(s , 21 , 11)
Speed = Mid(s , 46 , 5)
If K = "$GPRMC" Then
Cls
Upperline
Lcd "N" ; Nord ; " " ; "E" ; Ost
Lowerline
Lcd Speed
Waitms 100
End If
Return
-
Hallo,
die Übertragungsparameter sind
Baudrate: 4000
Datenbits: 8
Parität: N
Stopbit: 1
Ich habe nun schon viel mit GPS programmiert. Bei mir liegt immer die Initialisierung im Sekundenbereich (unterhalb 5 Sekunden). Wenn kein GPS-Empfang vorliegt, werden die im GPS-Empfänger eingestellten Defaultwerte gesendet, d.h. vor allem wird sofort eine Uhrzeit, ein Datum und die Empfänger-Warnung ausgegeben. Bis auf die Empfänger-Warnung handelt es sich um die Defaultwerte. Aber auch die sind in einem Programm sofort auswertbar, da sie sofort nach einschalten des Empfängers zur Verfügung stehen. Bis dann die Empfänger-Warnung auf "A" springt, können bei freiem Blick zum Sat. schon mal 15-20 Sekunden vergehen. Auf alle Fälle werden nach dem Einschalten nicht nur Nullen gesendet (das ist im Code von raggy ja auch klar zu sehen). Auch die Checksumme am Schluss des jeweiligen Datensatzes unterscheidet sich sofort nach einschalten von einer 0.
Peter
-
Nicht 4000 sondern natürlich 4800. Hab mich vertippt.
Peter
-
hallo @ all,
danke für eure bemühungen.
zu raggy:
dein programm zeigt mir leider immer nur "||" auf dem display an, hab das gps-teil 5 bis 7 minuten ins freie gestellt, allerdings ändert sich das display nicht :-(
was mache ich den bloß falsch??
gruß
chris