Hallo Che G.
Ich wuerde mal hier im Forum suchen nach GPS es gibt viele Seiten.
Die Seiten von GPSKLAUS solltest Du dir mal ansehen.
Mein HI 204S hat zB eine Leitung Digital ausgang und eine RS232 ausgang.
Gruß raggy
Druckbare Version
Hallo Che G.
Ich wuerde mal hier im Forum suchen nach GPS es gibt viele Seiten.
Die Seiten von GPSKLAUS solltest Du dir mal ansehen.
Mein HI 204S hat zB eine Leitung Digital ausgang und eine RS232 ausgang.
Gruß raggy
Hier noch ein Programm war nicht von mir hatte ich nur angepaßt auf meinen GPS Empfaenger.
NOCHMALS das PROGRAMM ist NICHT VON MIR,es war hier aus dem Forum.
Gruß raggy
Code:
'Programm für GPS_Modul HI-204S******************
'kann an jeden anderen GPS Empfaenger angepaßt werden.
'Getestet auf Atmega16/32 und Atmega168
$regfile = "m16def.dat"
$crystal = 10000000
$baud = 4800
$hwstack = 32 'hardware stack
$swstack = 8 'software stack
$framesize = 44 'frame space
Dim K As String * 10
Dim S As String * 72
Dim N_grad As String * 2
Dim E_grad As String * 3
Dim N_min As String * 2
Dim N_ablage As String * 3
Dim E_min As String * 2
Dim Nord As String * 2
Dim Ost As String * 3
Dim Nord_rest As String * 7
Dim Ost_rest As String * 7
Dim E_ablage As String * 3
Dim N As String * 1
Dim O As String * 1
Dim Av As String * 1
Dim N_sec As Single
Dim E_sec As Single
Dim Runden As Single
Dim Ablage As Integer
Dim Ergebnis As Single
Const T = 1000
Const Time = 60
'Fuer Atmega168
'Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
'Fuer Atmega16/32
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2
Config Lcd = 40 * 2
Cls
Cursor Off
On Urxc Onrxd
Enable Urxc
Enable Interrupts
Main:
Goto Main
Onrxd:
'S = "$GPRMC,104549.04,A,2447.2038,N,12100.4990,E,016.0,221.0,250304,003.3;W;A"
S = S + Chr(udr)
If Len(s) = 72 Then
S = Mid(s , 2 , 71)
End If
K = Mid(s , 1 , 6)
'******Position In Grad und Minuten******Auslesen**
Nord = Mid(s , 21 , 2)
Ost = Mid(s , 33 , 3)
Nord_rest = Mid(s , 23 , 7)
Ost_rest = Mid(s , 36 , 7)
'**************Ende Position Auslesen***********************
'---------------------------------------------------------------
'****Daten Auslesen und in Grad Minuten u.Sec. umrechnen********
'Daten** Nord-Süd** Grad**Minuten**Auslesen******
N_grad = Mid(s , 21 , 2)
N_min = Mid(s , 23 , 2)
N_ablage = Mid(s , 26 , 3)
N = Mid(s , 31 , 1)
'***********Status A oder V***Auslesen********
Av = Mid(s , 19 , 1)
'**************************************
'******** OST**West**Auslesen***************
E_grad = Mid(s , 33 , 3)
E_min = Mid(s , 36 , 2 )
E_ablage = Mid(s , 39 , 3)
O = Mid(s , 44 , 1)
'****************Rechnen umwandeln in Secunde***********************
' drei Stellen hinter dem Punkt in Sec umrechnen
' geteilt durch tausend Mal 60 = SEKUNDEN!
'Fuer Top50 Karten WSG84*********************************************
'********Umrechnen Nord Sued In Sec**************************
Ablage = Val(n_ablage)
Ergebnis = Ablage / T
Runden = Ergebnis * Time
N_sec = Round(runden)
'***************************************
Ablage = Val(e_ablage)
Ergebnis = Ablage / T
Runden = Ergebnis * Time
E_sec = Round(runden)
'*****************Ende Rechnen**************************************
'*******Auf Display ausgeben****************************************
If K = "$GPRMC" Then
Upperline
Lcd "" ; Ost ; Chr(223) ; Ost_rest ; Chr(39) ; O ; " " ; Nord ; Chr(223) ; Nord_rest ; Chr(39) ; N ; " " ; "STATUS=" ; Av
Lowerline
'Lcd E_grad ; " " ; E_min ; " " ; E_sec ; " " ; O ; " " ; N_grad ; " " ; N_min ; " " ; N_sec ; " " ; N
Lcd E_grad ; Chr(223) ; E_min ; Chr(39) ; " " ; E_sec ; Chr(34) ; " " ; O ; " " ; N_grad ; Chr(223) ; N_min ; Chr(39) ; " " ; N_sec ; Chr(34) ; " " ; N
End If
Return
Hallo raggy,
danke für deine antwort, allerdings funzt auch dein prog nicht :-(
was mache ich bloß falsch?? ich habe jetzt schon das teil 10 minuten lang draußen liegen lassen, aber ist wird immer nichts auf dem display angezeigt :-(
hat jemand einen tipp für mich??
gruß
chris
PS: die seiten von gpsklaus hab ich mir auch schon angesehen, hat alles nichts geholfen
Guten morgen,
die Daten werden in dem Code zwar verarbeitet, aber nicht empfangen. Es fehlt die Zeile
Config Serialin = Buffered , Size = 72 , Bytematch = 36
Bei dieser Zeile wird auf das $ gewartet , der Interrupt wird ausgelöst und anschließend werden 72 Zeichen eingelesen. Jeder GPS-Datensatz fängt mit $ an. Es wäre noch besser, wenn auf das Zeichen LF der Interrupt ausgelöst wird. Das ist das letzte Zeichen eines GPS-Datensatzes und somit zählt das Zeichen $ des neuen Datensatzes zum neuen Datensatz dazu. (Hier im Forum nach Onrxd suchen)
Peter
gutn mittag,
das ganze ist zwar einläuchtend und ich freue mich auch sehr über deine antwort, peter, allerdings tritt ein fehler beim compilimieren auf, wenn ich diese zeile in raggy's programm einfüge.
ISR is already .........
wenn ich das
On Urxc Onrxd
Enable Urxc
Enable Interrupts
weglasse, findet er irgendein label nicht!!
gruß
chris
Iich gehe dann davon aus, dass Du nicht mit der aktuellen Bascom_version arbeitest.
Das Label Onrxd muss vorhanden sein. Es handelt sich hierbei um einen defierten Namen. Die Zeile Config Serialin muss im Deklarationsteil des Bascom-Programms stehen.
Peter
nein, ich habe version 1.11.8.3 , da ich davon die vollversion habe und das update irgendwie nicht funktioniert hat. :-(
kann ich trotzdem etwas tun??
gruß
chris
OK, dann mach das mal wie folgt:
Wobei hierCode:$regfile = "m32def.dat"
$crystal = 16000000
$framesize = 32
$swstack = 32
$hwstack = 32
Open "Com1:9600,8,N,1" For Output As #1 ' COM 1 Output
Open "Coma.3:4800,8,N,1,inverted" For Input As #2
Dim Zaehler As Integer
Dim A As Byte
Dim GpsDaten(75) As Byte
Zaehler = 0
Do
A = Waitkey(#2)
If A = 36 Then
Do
A = Waitkey(#2)
GpsDaten(Zaehler) = A
Print #1 , Chr(GpsDaten(Zaehler));
Zaehler = Zaehler + 1
If Zaehler > 75 Then Zaehler = 1
Loop
End If
Loop
Close #1
Close #2
End
Open "Coma.3:4800,8,N,1,inverted" For Input As #2
als Input für den GPS-Empfänger gilt und die empfangenden Daten über die serielle Schnittstelle ausgegeben werden. Über ein Terminalprogramm mit den Parametern 9600,8,N,1 hättest Du die Daten in Deinem Terminalprogramm.
Eine andere Möglichkeit ist nun, die empfangenden Daten nicht über COM an den PC auszugeben, sondern auf dem Board entsprechend dem anderen Programm auszuwerten und auf dem LCD-Display wiederzugeben. Dü könntest jetzt aus den beiden Programmen eines machen.
Ich hoffe, ich konnte Dir so helfen.
Peter
Hallo Che G:
Versuch mal mit diesem Link
http://www.liebl-net.dtdns.net/hard/...i/gps-moni.php
Ganz unten kanst Du ein Programm in Bascom laden.
wenn das nicht funktioniert kanst Du wohl von einem Hardware fehler
ausgehen.
Gruß raggy
hallo raggy,
diesen link kannte ich schon, allerdings hab ich die software noch nicht ausprobiert!!
leider zeigt hier der bildschierm die ganze zeit KEIN "GPS-Maus gefunden" an :-(
was mache ich bloß falsch??
gruß
chris