- LiTime Speicher und Akkus         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 50

Thema: gps mit atmega32

  1. #21
    Neuer Benutzer Öfters hier
    Registriert seit
    18.01.2005
    Beiträge
    19
    Anzeige

    LiFePo4 Akku selber bauen - Video
    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

  2. #22
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    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

  3. #23
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.03.2008
    Ort
    Huntlosen
    Alter
    31
    Beiträge
    391
    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.

  4. #24
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    und wie wandle ich hex daten in einen anderen datentyp um (welcher ist überhaupt sinnvoll), damit sie der atmega lesen kann??

  5. #25
    Neuer Benutzer Öfters hier
    Registriert seit
    18.01.2005
    Beiträge
    19
    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

  6. #26
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    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

  7. #27
    Benutzer Stammmitglied
    Registriert seit
    10.06.2006
    Ort
    Duisburg-Rheinhausen
    Alter
    77
    Beiträge
    80
    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

  8. #28
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    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

  9. #29
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Nicht 4000 sondern natürlich 4800. Hab mich vertippt.
    Peter

  10. #30
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    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

Seite 3 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test