Hello, I am having errors while compiling my code for reading and writing on EEPROM with my 12C671.
I tried using read, write, I2CREAD etc but there are errors always.
Can someone please guide me as to what I could do?
Thanks
Hello, I am having errors while compiling my code for reading and writing on EEPROM with my 12C671.
I tried using read, write, I2CREAD etc but there are errors always.
Can someone please guide me as to what I could do?
Thanks
___________________
WHY things get boring when they work just fine?
Hi,
You can find on firsts pages of the manual, $ MCU Specific issues : " ... those chips have I2C interfaced EEPROMS so, you have to use I2CRead and I2CWrite ... "
you'll find further infos either in the Pic Datasheet and in respective commands pages of PBP Manual.
Alain
PS: Will you show some code ???
Last edited by Acetronics2; - 27th February 2010 at 13:07.
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
I did tried to do as per the manual, but seems to be missing something:
This is what I did:
Can you please add one example to read and one to write?Code:DEFINE I2C_INTERNAL 1 EEPROM 0,[0,0,0,0] read 0,gpio.0 read 1,gpio.1 read 2,gpio.4 read 4,gpio.5 Also tried the above 4 statements using 12CREAD but :(
I went through the manual but it does not have an example on how to write statements for INTERNAL EEPROM.
___________________
WHY things get boring when they work just fine?
Straight from the SAMPLES folder of your compiler ...
also available @ Melabs site in the support section ...Code:' I2CREAD and I2WRITE Commands ' ' Write to the first 16 locations of internal I2C EEPROM ' Read first 16 locations back and send to serial out repeatedly ' Note: for PIC12CE67x MCU's Include "modedefs.bas" ' Include serial modes Define I2C_INTERNAL 1 ADCON1 = 7 ' Set ADC pins to digital operation SO con 1 ' Define serial output pin DPIN var GPIO.6 ' Data line to internal EEPROM CPIN var GPIO.7 ' Clock line to internal EEPROM B0 var byte B1 var byte B2 var byte For B0 = 0 To 15 ' Loop 16 times I2CWRITE DPIN,CPIN,$A0,B0,[B0] ' Write each location's address to itself Pause 10 ' Delay 10ms after each write Next B0 mainloop: For B0 = 0 To 15 step 2 ' Loop 8 times I2CREAD DPIN,CPIN,$A0,B0,[B1,B2] ' Read 2 locations in a row Serout SO,N2400,[#B1," ",#B2," "] ' Print 2 locations Next B0 Serout SO,N2400,[10] ' Print linefeed Goto mainloop
Alain
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Perfect, thank you so much. Hopefully it should solve my problem.
Will this read write operation be affected by DT-Interrupts in any way as they are also running in my code?
Thanks again
___________________
WHY things get boring when they work just fine?
my point of view is to disable interrupts before writing to EEPROM and re-enable after.
For DT Ints ... I do not remember exactly if there's a trick to do that automatically ... I think yes ( something like "DEFINE EEPROM_USED 1" ... may be ), but you'd much better verify on the relevant thread.
Alain
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
From the PBP 2.60 manual:
DEFINE WRITE_INT 1 ‘Disable/Enable INTs in WRITE
If you put this in your DEFINE block, it will turn off your INTs before the WRITE and enable them after the WRITE.
Note that if you include this DEFINE, it will always ENABLE ints when the write is finished, whether or not they were enabled when the WRITE was invoked.
Charles Linquist
Bookmarks