Maybe it is just a stack problem.
Have you looked at how deep the stack is and when it would throw out one too many calls or jumps?
Anyhow hope you figure it out.
CaliforniaSlacker wrote:'The display message routines are in page1 and the display strings are in pages2 & 3'
I don't think that is the right way to do it.
Wait until you get confirmation on this before rewriting program.
The way to do it is put the subroutines at the beginning of file.
Like configuration, declarations and then all subroutines.
Then put the start and main program.
I think this might turn out to be your answer.
Adco wrote:I've managed to place all my strings into a page. It works!!!! All I have to do is keep track of each string by orging it correctly and making a note of it. I know the read will be easy. Just load address, do a few needed actions and the data will pop out.
A simple loop routine will retrieve the data and output to the display until I read a 00h in, then I know that is the end of the string.
Easy Peasy. Why didn't they tell us about this earlier. Most of the forums discussing this issue talk about PCLATH and pagesel $ etc. Not much about retrieving data tables from eeprom. Because the eeprom address registers are 2 bytes wide, there is no limit to how far it can reach without having to set pages or worry about long calls. And, a bonus if needed is that the data is 14 bits wide as well! You can even store 2 simple ascii characters in one location! How about that?
ric wrote:Adco wrote:I've managed to place all my strings into a page. It works!!!! All I have to do is keep track of each string by orging it correctly and making a note of it. I know the read will be easy. Just load address, do a few needed actions and the data will pop out.
A simple loop routine will retrieve the data and output to the display until I read a 00h in, then I know that is the end of the string.
You need to get your terminology right.
Those strings are going into FLASH memory, not EEPROM.
It is possible to put a few strings into EEPROM, but not the way you're doing it. FLASH is better anyway if you don't need to write to the strings.
It's even possible to pack two (7-bit) ASCII characters per FLASH location if you get pushed for space.Easy Peasy. Why didn't they tell us about this earlier. Most of the forums discussing this issue talk about PCLATH and pagesel $ etc. Not much about retrieving data tables from eeprom. Because the eeprom address registers are 2 bytes wide, there is no limit to how far it can reach without having to set pages or worry about long calls. And, a bonus if needed is that the data is 14 bits wide as well! You can even store 2 simple ascii characters in one location! How about that?
At a guess, you have been looking at some very old tutorials, before Microchip extended the EEPROM access registers to also be able to read FLASH memory.
That started with the PIC16F877 chips, which came before the PIC16F887 chips.
Both are VERY VERY old.
The newer PIC16F1xxx family chips can now read FLASH memory just using the FSR registers, which is even simpler.
For your other problems, note the answer to your post on the Microchip forum. http://www.microchip.com/forums/m1044437.aspx
Users browsing this forum: No registered users and 1 guest