Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 21:55 25 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : GPS parse and CPU load

Author Message
vk4tec

Senior Member

Joined: 24/03/2012
Location: Australia
Posts: 239
Posted: 10:44am 30 Apr 2012
Copy link to clipboard 
Print this post

Hello

I started out with a simple GPS display program which worked well.

As the project grew and I asked more and more of the DuinoMite Mini, I noticed some data starting to slip

Now my project is so bogged down, it sometimes completely misses $GPRMC sentences.

And now I notice that I am asking too much of the CPU, a file name corruption is occuring.

Maybe I need to start again with a "do .... loop" that just receives GPS data and that all it does.

I have tried a SETTICK for the LCD display routines.

Am I asking too much ? Maybe the over head of basic is working the CPU too hard ?

I have some stats on each GPS sentences $GPRMC $GPGGA $GPGSV $GPGSA and I noticed the counts started to fall off for praticular sentences.

Anyone got some experiences with handling loads with constant incoming data ?

My lastest attempt to get around the file_name corruption is to turn OFF the com port when I am not using it and writting to the LCD.

I could make one DuniMite Mini a NMEA parser and on send to a second board for display ?

- Andrew -
Andrew Rich VK4TEC
www.tech-software.net
 
vk4tec

Senior Member

Joined: 24/03/2012
Location: Australia
Posts: 239
Posted: 11:50am 30 Apr 2012
Copy link to clipboard 
Print this post

I think I might have cured my problems,

I increased the memory depth on the COM port

open "COM3:19200,2048" as #1

instead of

open "COM3:19200" as #1 ( 256 bytes )

- Andrew -
Andrew Rich VK4TEC
www.tech-software.net
 
cwilt
Senior Member

Joined: 20/03/2012
Location: United States
Posts: 147
Posted: 09:23pm 30 Apr 2012
Copy link to clipboard 
Print this post

I have written my own GPS parser. I used a settick function to read GPS data once a minute. When the read function is called I used the line input # function to read a full sentence at one call. I look for 4 different nema sentences and store this in strings.

Those strings are parsed only when data is to be displayed or recorded. That leaves the processor free for other duties.

I hope that helps you.

Kind regards,
Charles
 
vk4tec

Senior Member

Joined: 24/03/2012
Location: Australia
Posts: 239
Posted: 10:16pm 30 Apr 2012
Copy link to clipboard 
Print this post

Thanks Charles.

My requirement is the other way around.

I am using it as a logger

I do not want to miss any NMEA at all.

I think I have fixed it, I have a larger serial buffer and some FAULT capture code running.

Will leave it run for 24 hours and see what happens.

I think the LCD and MATHS was taking away too much time.

Now the GPS parse is the LOOP and the LCD is a SETTICK

- Andrew -
Andrew Rich VK4TEC
www.tech-software.net
 
cwilt
Senior Member

Joined: 20/03/2012
Location: United States
Posts: 147
Posted: 10:45pm 30 Apr 2012
Copy link to clipboard 
Print this post

Mine is used for logging as well as other things.
Why do you need to record so much data?
What is the intended purpose?
Is the rate of data download the issue? Can you increase the baud rate of the GPS?
Sorry for all of the questions. Just trying to help.

If I was going to record position of something moving quickly I would use occasional GPS data in addition to other sensors for some dead reckoning.
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024