PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gps mit atmega32



Che Guevara
17.09.2008, 18:33
servus leude,

ich habe jetzt vor ein paar tagen einen ipaq pocket pc geschenckt bekommen. dabei war auch so ein gps-empfänger fürs navi, allerdings brauche ich das nicht!!

jetzt wollte ich das gps-teil (wie heißt das richtig?? gps-mouse??) an einen atmega32 hängen und dann daraus i-welche daten auslesen (wieviele satelliten, höhe über nn, position (nord und west), usw. ). allerdings weiß ich nicht, wie ich das anstellen soll?!?! das teil hat 4 anschlüsse (schwarz, weiß, gelb und rot (wahrscheinlich: gnd, data, clock, vcc (3,3V??))). wie muss ich diese an meinen atmega32 hängen, und welches prog brauche ich?? hat jemand vielleicht ein beispiel??

bin für jede hilfe dankbar.

gruß
chris

Andree-HB
18.09.2008, 05:37
wie muss ich diese an meinen atmega32 hängen, und welches prog brauche ich??


...das ist doch von Dir zu entscheiden - Infos und Beispiele für GPS gibt es hier in mehreren Sprachen in Hülle und Fülle -> SuFu

Und die Belegung der Anschlüsse wird Dir hier keiner nennen können, wenn Du keine näheren Angaben zum Gerät machst !

jeffrey
18.09.2008, 11:51
hoi,
anschlüsse sind normalerweise vcc, gnd, rx, tx
das ganz verwendet normalerweise rs232 prozokoll mit 4800 baud, wenn ich mich net täusch. beispiele und erklärungen gibt´s wie bereits geschrieben massig.
mfg jeffrey

Che Guevara
18.09.2008, 14:26
hallo,

danke für eure antworten! ich habe auch schon im forum gesucht, allerdings hab ich nicht gefunden, was auf meinen fall zutrifft :-( vielleicht habtr ihr ja einen link für mich?!?! :-)

woher weiß ich den, welches kabel rx und welches tx ist??

gruß
chris

jeffrey
18.09.2008, 14:28
hallo,

danke für eure antworten! ich habe auch schon im forum gesucht, allerdings hab ich nicht gefunden, was auf meinen fall zutrifft :-( vielleicht habtr ihr ja einen link für mich?!?! :-)

woher weiß ich den, welches kabel rx und welches tx ist??

gruß
chris
ausprobieren du genie, und such halt mal bei google nach protokoll gps, des heißt nmea, oder so ähnlich.

Che Guevara
18.09.2008, 14:51
ok, aber wie stelle ich das an, hab noch nie mit rs232 gearbeitet *schaem*

hast du evtl. ein kleines beispiel für mich, was ich da senden muss?? währe wirklich sehr nett ;-)

kann das modul dabei nicht kaputt gehen??

sorry für die dummen fragen, aber ich kanns halt einfach noch nicht :-)

gruß
chris

jeffrey
18.09.2008, 15:22
hoi,
klar kann das modu dabei kaputt gehn, wenn man da ne zu hohe spannung oder so anlegt. aber du brauchst es ja eigentlich eh nicht, also ist es ja nicht so schlimm. ich würd mal rein intuitiv schätzen schwarz gnd, rot 3,3 ooder 5 v. im normalfalls sendet das modul einfach nach dem einschalten daten, also einfach mal nen schnittstellenwandeler an gelb halten und im hypertermminal, oder so gucken, ob was kommt. wenn net, dann nimm halt mal das weiße kabel. wenn da au nix kommt, dann halt mal 5v verwenden, oder aber die spannungsversorgung woandesr anschließen.
am einfachsten wär wahrscheinlich, nachdem du net weißt, wie das modul heißt das ganze mal aufschrauebn und die ineterne verschaltung anschauen.
mfg jeffrey

Che Guevara
18.09.2008, 15:29
dass schwarz gnd ist, hab ich mir schon gedacht ;-) an rot habe ich 3V3 dran, dass ist auch klar :-) mir geht es eig um den weißen und roten anschluss.. welcher davon ist den rx und welcher tx???

zu dem "nach dem einschalten sendet das teil einfach":

ich hab mal beide kabel (weiß und gelb) an porta des atmega gehangen und die reinkommenden daten aufm display ausgeben lassen.
da kommt bei beiden angeblich nur:
000000000000000000000000000000000001
oder so (weiß die genaue stellenanzahl grad ned) raus.

gruß
chris

jeffrey
18.09.2008, 15:34
häng des mal an rx vom mega und stell als buadrate 4800 ein, parity und stoppbit musst du schauen, wie das laut protokoll definiert ist. und guck mal was dann kommt.

Che Guevara
18.09.2008, 15:40
und wie kann ich das, das dann reinkommt aufm lcd anzeigen lassen??

gruß
chris

jeffrey
18.09.2008, 15:42
ich schatz mal irgendwie in der art

a=inkey()
lcd(a)

aber weiß ich grad net auswendig. schließ das teil doch einfach an den pc an, dann hast des problem net, dann weißt du scho, dass es net an deinem programm liegt. da zeigt des terminalprogramm des ja dann direkt an.

Che Guevara
18.09.2008, 15:43
ich hab keine solche schnittstelle..... hab ned laptop ;-)

Che Guevara
18.09.2008, 16:00
ich hab jetzt mal folgendes prog aufn chip gebrannt und beide leitungen abwechselnd an den rx-pin angschlossen.... ohne erfolg (auf dem display steht nur "0"). hier mal das prog:



$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

Initlcd
Cls

Dim A As Long

Do

A = Inkey()
Locate 1 , 1
Lcd A

Loop

End


gruß
chris

jeffrey
18.09.2008, 16:30
so überschreibst du ja jedesmal das letzte ergebnis mit dem locate 1,1 also entweder du liest erst alle zeichen in einen string ein (ischarwaiting oder so funktion dazuverwenden) oder aber halt das nöchste zeichen immer an die nächste position schreiben.

Jaecko
18.09.2008, 18:01
Gibts auf diesem GPS-Teil evtl irgendwo ne Aufschrift, die den Hersteller bzw. Produktnamen angibt? Könnte ungemein helfen.

Che Guevara
18.09.2008, 20:44
hallo jaecko,

ja, außen auf der "hülle" stand "Destinator" drauf, die ist jetzt allerdings kaputt, hab ich abgemacht ;-)

auf der platine ist ein aufkleber drauf, auf dem ein paar zahlen stehen:

N0M0000B10
72B00251317

mehr hab ich leider nicht :-(

gruß
chris

Jaecko
18.09.2008, 20:52
Das Ding da rechts unten? http://blog.tmcnet.com/blog/tom-keating/images/destinator-gps-ipaq.jpg

Wenn ja, könnte sich so evtl was finden lassen.

Falls irgendwie noch bekannt ist, wie der GPS-Empfänger am Ipaq angeschlossen war, könnte evtl das hier helfen:
http://www.alpenflugzentrum.de/Technik/Kabel/kabel.html

Che Guevara
18.09.2008, 21:03
sieht so ähnlich aus, das gehäuse ist unten schwarz und oben (war) so eine halbe kugel drauf, die die gleiche farbe hat, wie manche ir-leds (so lila-blau)

die elektronik sieht allerdings gleich aus ;-)

danke für den link, werd ich mir mal ansehen!! :-)

Euro
18.09.2008, 21:10
Hallo,

ich bin zur Zeit auch mit nem GPS Empfänger am spielen.

Dabei hat mir die Seite http://www.kh-gps.de/gpsdec1.htm sehr weitergehollfen.
Schaltplan, Beipielprogramm, etc.

Gruß
Euro

Che Guevara
18.09.2008, 21:22
hallo euro,

danke für den link, der ist wirklich seeeeeeeehr hilfreich ;-)

jetzt habe ich gelesen, dass das teil 5v anstatt 3v3 braucht :-)
mittlerweile werden schon verschiedene zahlen auf dem display dargestellt ;-)

Euro
18.09.2008, 21:47
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%20Tools/Tools%20zur%20Simulation%20von%20GPS%20Daten/url/showartikel.php/art/149/kat/74/menu/1

Gruß
Euro

Che Guevara
18.09.2008, 22:08
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:


'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,dd mmyy,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

hunni
18.09.2008, 22:18
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.

Che Guevara
18.09.2008, 22:39
und wie wandle ich hex daten in einen anderen datentyp um (welcher ist überhaupt sinnvoll), damit sie der atmega lesen kann??

Euro
18.09.2008, 22:43
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

holzi
19.09.2008, 05:25
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

raggy
19.09.2008, 16:34
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



'$GPRMC,001300.955,V,0000.0000,N,00000.0000,E,,,10 1102,,*1C =70 byte
'$GPVTG,,T,,M,,N,,K*4E
'$GPGGA,001301.955,0000.0000,N,00000.0000,E,0,00,5 0.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

holzi
19.09.2008, 18:00
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

holzi
19.09.2008, 18:01
Nicht 4000 sondern natürlich 4800. Hab mich vertippt.
Peter

Che Guevara
19.09.2008, 20:27
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

raggy
19.09.2008, 22:15
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

raggy
19.09.2008, 22:31
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




'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

Che Guevara
20.09.2008, 19:29
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

holzi
21.09.2008, 08:40
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

Che Guevara
21.09.2008, 11:42
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

holzi
21.09.2008, 12:14
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

Che Guevara
21.09.2008, 12:16
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

holzi
21.09.2008, 12:32
OK, dann mach das mal wie folgt:


$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

Wobei hier
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

raggy
21.09.2008, 17:04
Hallo Che G:
Versuch mal mit diesem Link
http://www.liebl-net.dtdns.net/hard/gps-moni/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

Che Guevara
21.09.2008, 20:51
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

raggy
21.09.2008, 22:47
Hallo Che G.
https://www.roboternetz.de/phpBB2/printview.php?t=24252&start=0
Schau dir mal das Bild an da wurde ein RS232---TTL Pegelwandler
benutzt eventuell brauchst Du das auch.
Es koennte daran liegen das es nicht funktioniert.Ansonsten bin ich auch ueberfragt ich weiß nicht woran es liegen koennte.
Etwas faellt mir gerade ein hast Du den Fuse beim Atmega verstellt,
wenn der neu ist steht der auf 1Mhz und das wird wohl nicht funktionieren.
Die GPS mouse sendet jede Sekunde die ganzen Daten.
Gruß raggy

Che Guevara
22.09.2008, 18:30
hallo raggy,

den link kenn ich schon, allerdings habe ich einen max232 (habs rn-control), deswegen brauch ich das nicht mehr, oder??

nein, der atmega ist schon älter und ich hab immer schon mit 16MHz externer quarz gearbeitet und hat bis jetzt immer gefunzt :-)

gruß
chris

raggy
22.09.2008, 21:28
Hi Che G.
Wenn an dem Bord eine RS232 dran ist versuch mal damit.
http://www.elline.de/elektronik/pinbelegung/pinbelegung_rs232.htm
Hier die belegung der RS232 Datakabel an Pin2 Gnd Pin5

Auch wen Du das GPS direkt an den Atmega anschließt muß GND von der GPS-Mouse mit der schaltung verbunden sein!! Die zwei möglichkeiten Probier mal,da sollte zumindest Datenmüll kommen.
Ansonsten weiß ich auch nicht mehr weiter.
Gruß raggy
Hi Che G. 25.09.08
Hast Du jetzt aufgegeben oder funktioniert es ?
Gruß raggy

raggy
26.09.2008, 20:13
Hallo
Beide von mir reingestellten Programme funktionieren habe ich heute nochmal getestet.
Das zweite gibt den Fehler Time aus die variable muß einen anderen Namen haben,seit der DCF LIB ist Time reserviert,
hab es umgeaendert in Tim funktioniert einwandfrei!
Gruß raggy

Blue72
01.10.2008, 10:35
Hi Leute,

wollte nicht wieder extra einen thread aufmachen.
Ich habe hier eine Holux GM-210.

Die Belegung habe ich schon herausgefunden:

Pin 1: TX-RS232
Pin 2: +5V
Pin 3: TX-TTL
Pin 4: GND
Pin 5: RX-TTL
Pin 6: RX-RS232

Das hiesse doch ich kann Pin 3 + Pin 5 direkt an den ATMEGA hängen oder ?

Gruß
Jens

T.J.
01.10.2008, 12:27
denke schon, hast kein Datenblatt?

Blue72
01.10.2008, 12:40
Nein leider nicht, ich werd es einfach mal ausprobieren :)

Jens

raggy
01.10.2008, 13:35
Hallo Blue72
TTL Pegel kann man direkt verbinden (Pin3 und 5) .
TX_TTL an RX ----Atmega
RX_TTL an TX ---- Atmega
Gnd --- Gnd nicht Vergessen.
Eventuell kann es sein das Baud auf 9600 gesetzt werden muß.

Blue72
01.10.2008, 13:36
Hi raggy,

vielen Dank !

Gruß
Jens

raggy
01.10.2008, 15:11
Hallo Blue72
Hier ein Link mit Daten von dem Holux GM-210
http://www.bluetooth-gps.de/GPS-Empfaenger/Kabelgebunden/Holux-GM-210::4365.html
sollte also 4800 Baud im Programm sein,wie man das höher stellen kann ist mir auch nicht bekannt. (Ohne Datenblatt)
wuensche Dir viel Erfolg
Gruß raggy