Thank you for all the help.
I been reading the manual a lot of times. I even follow the codes and procedures provided by the manual.
It's just simply won't work.
Again, thank you very much for your time and ideas.
Thank you for all the help.
I been reading the manual a lot of times. I even follow the codes and procedures provided by the manual.
It's just simply won't work.
Again, thank you very much for your time and ideas.
Hi everyone!
I can read and write now using the pic16f84a but I can't do that using pic16f877a.
Is there any lines I have to add inorder to allow reading and writing the eeprom?
I've read the 16f877a datasheet. It is stated there that I have to disable all interrupts before writing. I've tried that but still won't work.
A working simple code for reading and writing the internal eeprom of pic16f877a is all I need.
Please help me...
Thank you in advance.
Hi all,
returning to the original thread...
I have sucessfully created the circuit and code to work with data and save them it to the external eeprom with a determinated timming.
I have managed to save/read data in 2 blocks ( 2 sessions ).
I have one part of the code that is responsable to erase both blocks of data.
My erasing code is simple and i use a set of ( For x to y...next ) instructions where x and y are the block's starting address and ending address.
I could use more memory blocks and increase the project's performance but i limited it to 2 blocks because the erasing process takes too long ( 2/3 minutes for both blocks ).
I know that i could use a faster clock to increase the instruction's speed and erasing process, but i'm working with the internal clock of a 16F88.
Is there a way i can speed a bit more via software ? Maybe a diferent code/set of instructions that work a bit better ?
Thanks
By "block" do you mean the "page" feature of external eeproms?
If so, page write takes about the same time as writing a single byte. Should be somewhere between 2ms to 10ms depending on the eeprom you are using.
It seems that your block writing routine is not really accuate.
-------------------
"If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte
Hello sayzer,
i dont mean page.
When i say block it means that i'm using an area of memory for one record session and other area for a diferent record session.
For example...
Using memory address from 0 to 3000 will be used as "block" 1 or record session #1 and memory address 3500 to 6500 will be used as "block" 2 or session #2.
The user will choose ( using a button ) where it will record ( either block 1 or 2 ) and the same concept is used when reading back data.
I'm using a 16F88 pic with internal osc and a 24LC512 external eeprom.
The program works very well except the erasing rotine ( note that i'm erasing all blocks at the same time ).
With 2 blocks it erases in an acceptable time frame...but i would like to use more blocks without loosing too much time erasing them all.
Bookmarks