Hi, I think there is a small misunderstanding here. You cannot write to program memory, only to the data memory (I usually refer to data memory as EEPROM, while to program memory as Flash, so it makes clear which one is which). So EEPROM (data) is only 256byte, no need ADRESH... For reading the Flash you need to set the EECON1,EEPGD bit first. Can you show your code so that we can see where is the problem? Tamas On Wed, Apr 2, 2008 at 3:12 PM, Doug Metzler wrote: > > Page 119 of the datasheet seems to imply that I have 4k of EEPROM space > available: > > ... the EEADR and EEADRH > registers form a 2-byte word that holds the 12-bit address > of the EEPROM location being read. These devices > (PIC16F685/PIC16F689/PIC16F690) have 4K words of > program EEPROM with an address range from 0h to > 0FFFh. The program memory allows one-word reads. > ... > > So as a test I set EEADRH to b'00000001' and EEADR to 0x00, thinking that > it > should put the value in location 256, but it put the value in location 0. > I'm pretty sure I've got the BANKSEL's correct since both EEADR and EEADRH > are in the same bank. The code is straight out of the datasheet, but let > me > know if you'd like me to post it. > > Is there a trick to using the EEPROM above 255? (and if so, do you have > any > working sample code to do it? :-) ) > > Thank you for your help, > > DougM > > > -- > http://www.piclist.com PIC/SX FAQ & list archive > View/change your membership options at > http://mailman.mit.edu/mailman/listinfo/piclist > -- Rudonix DoubleSaver Did You Know that DoubleSaver is Smaller and More Powerful FailSafe Device than Any Other You can Get? http://www.rudonix.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist