GPS vevők és használatuk

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
doncarlos
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2007. október 14. vasárnap, 6:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: doncarlos »

nem ott minden tuti
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: Robert »

Kód: Egész kijelölése

Dim Strbytes(109) As Byte
Dim Gpsline As String * 108 At Strbytes(1) Overlay          ' NMEA mondat tároló
Rövid. A NMEA mondatod max 80 karakter lehet - emlékeim szerint. Ha a végén a crlf megsárül, akkor 2 összenő. Max karakter 160 és CRC hiba. Foglalj 2 kódra helyet.
Avatar
doncarlos
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2007. október 14. vasárnap, 6:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: doncarlos »

Este még följebb vettem a Gpsline-t majd meglátjuk mi lesz...
Avatar
doncarlos
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2007. október 14. vasárnap, 6:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: doncarlos »

A kód most még stabilabban viselkedik a terminálon nem látok korrupt sorokat, de még is 1 óra működés után a kijelzőn az idő valamint a szélesség érték mögött megjelent néhány oda nem illő karakter... A terminál nem is lenne baj, a furcsa az hogy a kijelzőre kerül aki rossz érték. Gondoltam már arra is hogy amikor hirtelen eltűnik a fix és a koordináták helye üres lesz, akkor történik valami, de ez csak találgatás, amolyan placebo szinten vagyok ezzel. (mintha mindig akkor kerülne plusz karakter a kijelzőre miután volt egy kis fix kiesés)
Avatar
doncarlos
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2007. október 14. vasárnap, 6:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: doncarlos »

Újabb GPS kalandok...

A következő a jelenlegi felállás: újratelepített win7 meg minden ami ezzel jár, újrarendezett próbapanel a hordozhatóság céljából, de minden ugyan oda visszakötve. A hőmérő tesztes program (ds18b20 és a DHT11 tesztelésére) hibátlanul meg órákon keresztül, a fentebb tárgyalt nmea feldolgozó programot beégetve fagy a csip! Általában 1-2x lefut az értelmezés de utána megáll! Kristály csere, belső oscról hajtás minden megvolt, más órajel, más gps programkód de mindig fagy! Mi történhetett?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: Robert »

Tippek: Más Bascom-AVR verzióval fordítasz, Code optimize be van kapcsolva, kódba is matattál :)
Fagyós chip:
- buffer? -> programkódban vagy a options alatt is állítható! hwstack/swstack/frames
- watrchdog?
Avatar
doncarlos
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2007. október 14. vasárnap, 6:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: doncarlos »

Robert írta:Tippek: Más Bascom-AVR verzióval fordítasz, Code optimize be van kapcsolva, kódba is matattál :)
Fagyós chip:
- buffer? -> programkódban vagy a options alatt is állítható! hwstack/swstack/frames
- watrchdog?
Kód az maradt az eredeti, az optimize code nem volt bekapcsolva, de most bekapcsoltam de nincs változás. hwstack/swstack/frames változás nélkül a kódban beállítva. watchdog ki van kapcsolva.
Egy érdekes dolog volt, amikor állítgattam a fuseokat, észrevettem hogy visszakerült m103 kompatibilitási módba, ami régen biztos ki volt kapcsolva mivel használtam minden portot (jtag stb le van tiltva).

Most levettem a külső kvarcot (előtte próbáltam alacsony/magas 11,0592 MHz és 16 MHz-es kvarccal) és belső óráról megy de így is fagy. Nem vagyok nagyon pro de egy csomo csippet próbáltam már ill. ez a mega is jó ideje megy már más progikkal de ilyen még 1x se volt...

Szerk.: Valami vagy a kóddal (nem változott benne semmi!), vagy a soros port(ok)al, vagy valami hozzájuk kapcsolódó dologgal lehet, mert a gpshez írtam egy külön kis progit, ami mint egy iránytű megmutatja a haladási irányt és ez egyelőre véletlen számokkal(nem kérdezem le a gps-t) gond nélkül rajzolgat a kijelzőre (nem fagy!).
Avatar
doncarlos
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2007. október 14. vasárnap, 6:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: doncarlos »

Újraírtam a feldolgozást, egyelőre még csak egyszerűen továbbítja a két soros port között az adatokat ha teljes checksumra stimmelő GPRMC mondatot talál. Ez működik is, nem fagy (ami érdekes, mert a fagyós is hasonló... :roll: ) de mégis itt is van olyan hogy egy egy rossz sor kiprintelődik... pl.:

Kód: Egész kijelölése

GPRMC,185851.000,A,4711.0000,N,01824.0000,E,0.89,240.50,210413,,,A*63
GPRMC,185852.000,A,4711.0000,N,01824.0000,E,0.93,241.58,210413,,,A*61
GPRMC,185853.000,A,4711.0000,N,01824.0000,E,1.13,242.38,210413,,,A*60
GPRMC,185855.000,A,4711.0000,N,01824.0000,E,1.21,244.25,210413,,,A*66
GPRMC,185856.000,A,4711.0000,N,01824.0000,E,1.23,252.82,210413,,,A*6B
GPRMC,185857.000,A,4711.0000,N,01824.0000,E,1.24,255.09,210413,,,A*62
GPRMC,185858.000,A,4711.0000,N,01824.0000,E,1.25,258.32,210413,,,A*61
GPRMC,185901.000,A,4711.0000,N,01824.0000,E,1.29,268.94,210413,,,A*6E
GPRMC,185902.000,A,4711.0000,N,01824.0000,E,1.27,267.48,210413,,,A*66
GPRMC,185903.000,A,4711.0000,N,01824.0000,E,0.98,269.19,210413,,,A*61
GPRMC,185905.000,A,4711.0000,N,01824.0000,E,0.97,265.89,210413,,,A*69
,,A*6A <---- HIBÁS ADAT!!!
GPRMC,185907.000,A,4711.0000,N,01824.0000,E,1.29,252.84,210413,,,A*68
GPRMC,185908.000,A,4711.0000,N,01824.0000,E,1.36,252.70,210413,,,A*69
GPRMC,185910.000,A,4711.0000,N,01824.0000,E,1.67,255.69,210413,,,A*64
GPRMC,185911.000,A,4711.0000,N,01824.0000,E,1.68,257.96,210413,,,A*6B
GPRMC,185912.000,A,4711.0000,N,01824.0000,E,1.68,263.50,210413,,,A*6E
Így szűröm az adatokat:

Kód: Egész kijelölése

'############################################
Do
   Dollar = Inkey()                                         'Start keresés
   If Dollar = "" Then Return
Loop Until Dollar = "$"
'############################################

Input Gpsline Noecho

'############################################
Strlen = Len(gpsline)
Chksum = 0
Gps_chksum_b = 0
Strlen = Strlen - 3

For Index = 1 To Strlen
   Chksum = Chksum Xor Strbytes(index)                      'Checksum generálás
Next Index

Gps_chksum = Right(gpsline , 2)

Gps_chksum_b = Hexval(gps_chksum)
'#############################################

If Chksum = Gps_chksum_b Then                               'Ha stimmel a checksum akkor mehet a process
   'Print #2 , Gpsline

    Gps_head = Left(gpsline , 5)                            'Gettoken(gpsline , 44 , 1)                   'Left(gpsline , 5)

    If Gps_head = "GPRMC" Then
      Print #2 , Gpsline
    End If

End If
Azért érdekes mert csak akkor kéne kiírnia ha If Gps_head = "GPRMC" igaz. Mégis mint fent látszik jönnek ilyen teljesen rossz sorok. Ez elég ritka amúgy kb. 1%

Még egy kérdés: Ahhoz hogy az m128 második soros megszakítása működjön mit kell még beállítani? Én így csináltam (részlet):

Kód: Egész kijelölése

Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Com2 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

Config Serialin1 = Buffered , Size = 250 , Bytematch = 13    ' GPS Buffer
Enable interrupts

Open "Com2:" For Binary As #2

Serial1charmatch:
Itt történne amit akarok
Return
De így nem működik, nem hajtódik végre a Serial1charmatch.
A hozzászólást 1 alkalommal szerkesztették, utoljára doncarlos 2013. április 22. hétfő, 15:46-kor.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: kapu48 »

Bascom könyv 16. Megszakítások
http://avr.tavir.hu/modules.php?name=Co ... age&pid=18

Bascom help: CONFIG SERIALIN

Kód: Egész kijelölése

'The M128 has an extended UART.
'when CO'NFIG COMx is not used, the default N,8,1 will be used
Config Com1 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Com2 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Com3 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Com4 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
 
Enable Interrupts
Config Serialin = Buffered , Size = 20
Config Serialin1 = Buffered , Size = 20 , Bytematch = 65
Config Serialin2 = Buffered , Size = 20 , Bytematch = 66
Config Serialin3 = Buffered , Size = 20 , Bytematch = All
 
 
'Open all UARTS
Open "COM2:" For Binary As #2
Open "COM3:" For Binary As #3
Open "COM4:" For Binary As #4
 
 
Print "Hello"                                               'first uart
Dim B1 As Byte , B2 As Byte , B3 As Byte , B4 As Byte
Dim Tel As Word , Nm As String * 16
 
'unremark to test second UART
'Input #2 , "Name ?" , Nm
'Print #2 , "Hello " ; Nm
 
 
Do
Incr Tel
Print Tel ; " test serial port 1"
Print #2 , Tel ; " test serial port 2"
Print #3 , Tel ; " test serial port 3"
Print #4 , Tel ; " test serial port 4"
 
 B1 = Inkey()                                             'first uart
 B2 = Inkey(#2)
 B3 = Inkey(#3)
 B4 = Inkey(#4)
 
If B1 <> 0 Then
    Print B1 ; " from port 1"
End If
If B2 <> 0 Then
    Print #2 , B2 ; " from port 2"
End If
If B3 <> 0 Then
    Print #3 , B3 ; " from port 3"
End If
If B4 <> 0 Then
    Print #4 , B4 ; " from port 4"
End If
 
Waitms 500
Loop
 
 
 
'Label called when UART2 received an A
Serial1charmatch:
Print #2 , "we got an A"
Return
 
 
'Label called when UART2 received a B
Serial2charmatch:
Print #3 , "we got a B"
Return
 
 
'Label called when UART3 receives a char
Serial3bytereceived:
Print #4 , "we got a char"
Return
 
End
 
Close #2
Close #3
Soros port (rs232)
http://avr.tavir.hu/modules.php?name=Fo ... &start=120
:arrow:
Avatar
doncarlos
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2007. október 14. vasárnap, 6:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: doncarlos »

Köszi hogy ezt leírtad de ahogy néztem (már ez előtt is átnéztem ezeket és az uart0 működik is) megvan nálam a config com, az enable interrupts, a config serialin1, a com #2 open és a serial1charmatch is. Mi az ami hiányzik? Ugyan ez a felállás csak serial0charmatch és kábel átkötés esetén jól működik.
pacman789
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2013. április 28. vasárnap, 9:32

Re: GPS vevők és használatuk

Hozzászólás Szerző: pacman789 »

Nem láttam, hogy válaszoltál:) és kitöröltem mert eléggé gáz hibára csúsztam rá:S /megvolt törve a kábel, most működik :)/

Köszi a gyors választ!
A hozzászólást 2 alkalommal szerkesztették, utoljára pacman789 2014. március 1. szombat, 19:25-kor.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: Robert »

A sorosportja 3.3V-os. Az 5V-os kimenetre hogy ráraktad, lehet hogy megölted.
A GPS sebessége 2400/4800/9600 bps is lehet.
Software serial nem egy életbiztosítás....


Amíg nincs műhold: nem jön nálam koordináta (60-90 sec).
pacman789
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2013. április 28. vasárnap, 9:32

Re: GPS vevők és használatuk

Hozzászólás Szerző: pacman789 »

Amúgy közben megoldódott törött volt a kábel:S
Robert írta:A sorosportja 3.3V-os. Az 5V-os kimenetre hogy ráraktad, lehet hogy megölted.
Az adatlapján az volt, hogy 3,3-5V akkor inkább 3.3-on menjen?
Robert írta:Software serial nem egy életbiztosítás.....
Ez mit takar?:)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: GPS vevők és használatuk

Hozzászólás Szerző: Robert »

A táp 3.3...5V. A Tx/Rx fix 3.3V-os...

A softvareserialban adatvesztések lehetnek....
astalavista1199
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2014. március 2. vasárnap, 12:05

Re: GPS vevők és használatuk

Hozzászólás Szerző: astalavista1199 »

Off téma. Áthelyezve: viewtopic.php?f=4&t=1461
Válasz küldése