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.
Hey with a PIC chip, I am used to assigning a single character to a register.
For instance
$GPRMC,123456,
Where 123456 are 6 different memory registers.
Is it possible in a PIC chip to assign a memory location for the whole string ?
Like
$GPRMC,123456,A,LAT,NS,LON,EW,SPEED,VAR,CHECKSUM*
I want to store and be able to spit out the entire string from
$GPRMC ......................................*
GPRMC to the star - these are my markers.
Maybe some wort of increment register ? write to location.
Is that RAM or EEPROM ?
- Andrew - Edited by vk4tec 2013-05-25Andrew Rich VK4TEC
www.tech-software.net
MOBI Guru
Joined: 02/12/2012 Location: AustraliaPosts: 819
Posted: 01:05pm 24 May 2013
Copy link to clipboard
Print this post
Your question is a little vague (to me at least).
Firstly, what PIC chip are you using and what lnaguage are you programming in?
If you have enough registers to store the data you want then it is possible as long as your assembler/compiler? lets you do it.
More information needed.David M.
vk4tec
Senior Member
Joined: 24/03/2012 Location: AustraliaPosts: 239
Posted: 01:28pm 24 May 2013
Copy link to clipboard
Print this post
More intel
What is the best way to assign a RAM space in a 16F628A and access it other than assigning one memory spot per character
Can you say start here and every time increment a ram address counter ?
I want to read a GPS strong and keep over writing a memory location with the data
AndrewAndrew Rich VK4TEC
www.tech-software.net
kiiid
Guru
Joined: 11/05/2013 Location: United KingdomPosts: 671
Posted: 04:02pm 24 May 2013
Copy link to clipboard
Print this post
I would say the question is still not clear. Normally when you are working with strings every character occupies one memory location anyway.
For pulling data from the NMEA0183 strings you need a parser, which is software and does not have anything to do with the type of the micro.http://rittle.org
--------------
vk4tec
Senior Member
Joined: 24/03/2012 Location: AustraliaPosts: 239
Posted: 04:35pm 24 May 2013
Copy link to clipboard
Print this post
When working in assembly lanfuage with a PIC chip
Is it possible to speficfy a start address of RAM and then incremnet that RAM address counter and write charcater after character
And then read back the same way
I will try it and report back
- Andrew - Andrew Rich VK4TEC
www.tech-software.net
kiiid
Guru
Joined: 11/05/2013 Location: United KingdomPosts: 671
Posted: 04:55pm 24 May 2013
Copy link to clipboard
Print this post
Auto-incremental addressing... No, that can't be done with PIC16. You will have to increase the index manually after storing each byte.http://rittle.org
--------------
MOBI Guru
Joined: 02/12/2012 Location: AustraliaPosts: 819
Posted: 06:19pm 24 May 2013
Copy link to clipboard
Print this post
Load your FSR register with the location of the the first byte of your string storage and then write/read to the INDF register to put/get data to/from your string. You will need to increment the FSR register (INCF FSR,F) to point to the next location.
The FSR is an index register. The INDF is a pseudo register linked to the FSR.
Don't forget to keep the location of your string storage somewhere so you can reload the FSR to the beginning as needed.
You will need some sort of parse routine to read the indiviual bytes and format the data accordingly.
Edited by MOBI 2013-05-26David M.
JohnS Guru
Joined: 18/11/2011 Location: United KingdomPosts: 3802
Posted: 09:14pm 24 May 2013
Copy link to clipboard
Print this post
Ah, the memories.
This is why so many people use C. All manner of code moves between all manner of CPUs, really rather easily (often no changes).
Generally runs not much slower than ASM. Takes a bit more space.
John
MOBI Guru
Joined: 02/12/2012 Location: AustraliaPosts: 819
Posted: 09:48pm 24 May 2013
Copy link to clipboard
Print this post
Somehow, I prefer the satisfaction of ASM but as I've said elsewhere, I use both because both have their uses.
On 628A subject, I am quite happy to help write an ASM routine to do all the GPS things that Andrew wants to do. It is not that hard - "just" need to know what BYTE size each of the data elements is.
I still don't know what programming language Andrew has and what ICSP facilities? It would sure help.David M.
vk4tec
Senior Member
Joined: 24/03/2012 Location: AustraliaPosts: 239
Posted: 09:52pm 24 May 2013
Copy link to clipboard
Print this post
I have the Assembly for the NMEA parser and LCD display
I was just trying to improve the memory usage.
ICSP is PicKit3 microchip
- Andrew - Andrew Rich VK4TEC
www.tech-software.net
MOBI Guru
Joined: 02/12/2012 Location: AustraliaPosts: 819
Posted: 12:24am 25 May 2013
Copy link to clipboard
Print this post
I don't think you will achieve that as your data format will be the same however you use it, so the memory usage will be the same.
Are you already able to load the GPS data into the 16F628A, or is that what you are working towards?
I think I need a bit more about your setup such as cct diag, photo etc as I'm still not really sure what you are up to.