GPS vevők és használatuk
Re: GPS vevők és használatuk
nem ott minden tuti
Re: GPS vevők és használatuk
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óRe: GPS vevők és használatuk
Este még följebb vettem a Gpsline-t majd meglátjuk mi lesz...
Re: GPS vevők és használatuk
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)
Re: GPS vevők és használatuk
Ú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?
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?
Re: GPS vevők és használatuk
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?
Fagyós chip:
- buffer? -> programkódban vagy a options alatt is állítható! hwstack/swstack/frames
- watrchdog?
Re: GPS vevők és használatuk
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.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?
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!).
Re: GPS vevők és használatuk
Ú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ó...
) de mégis itt is van olyan hogy egy egy rossz sor kiprintelődik... pl.:
Így szűröm az adatokat:
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):
De így nem működik, nem hajtódik végre a Serial1charmatch.
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
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 IfMé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
A hozzászólást 1 alkalommal szerkesztették, utoljára doncarlos 2013. április 22. hétfő, 15:46-kor.
Re: GPS vevők és használatuk
Bascom könyv 16. Megszakítások
http://avr.tavir.hu/modules.php?name=Co ... age&pid=18
Bascom help: CONFIG SERIALIN
Soros port (rs232)
http://avr.tavir.hu/modules.php?name=Fo ... &start=120

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
http://avr.tavir.hu/modules.php?name=Fo ... &start=120
Re: GPS vevők és használatuk
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.
Re: GPS vevők és használatuk
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!
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.
Re: GPS vevők és használatuk
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).
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).
Re: GPS vevők és használatuk
Amúgy közben megoldódott törött volt a kábel:S
Az adatlapján az volt, hogy 3,3-5V akkor inkább 3.3-on menjen?Robert írta:A sorosportja 3.3V-os. Az 5V-os kimenetre hogy ráraktad, lehet hogy megölted.
Ez mit takar?:)Robert írta:Software serial nem egy életbiztosítás.....
Re: GPS vevők és használatuk
A táp 3.3...5V. A Tx/Rx fix 3.3V-os...
A softvareserialban adatvesztések lehetnek....
A softvareserialban adatvesztések lehetnek....
-
astalavista1199
- Újonc

- Hozzászólások: 4
- Csatlakozott: 2014. március 2. vasárnap, 12:05
Re: GPS vevők és használatuk
Off téma. Áthelyezve: viewtopic.php?f=4&t=1461