??? 12/11/06 11:51 Read: times |
#129278 - Photo Responding to: ???'s previous message |
EEPROM increases internal add. pointer automaticlly when a data was written. In the code (relevant code is below) it is possible to write 'F0H' data to add. location 10H. In the EEPROM_WRITE sub routine the code works. when I wanted to read this data back, the data on the 11H add. location is being sent back. Why I can not specify the 10H location to the EEPROM again?.
EEPROM_WRITE: LCALL I2C_START LCALL EE_ADD_WR MOV A,DPL ;DPL is 10H LCALL I2C_WRITE LCALL ACK MOV A,VERI ;VERI is 30H add. location in the ram LCALL I2C_WRITE LCALL ACK LCALL I2C_STOP RET EEPROM_READ: LCALL I2C_START LCALL EE_ADD_WR MOV A,DPL LCALL I2C_WRITE LCALL ACK LCALL I2C_START LCALL EE_ADD_RD LCALL I2C_READ LCALL NO_ACK LCALL I2C_STOP RET EE_ADD_WR: MOV A,#0A0H LCALL I2C_WRITE LCALL ACK RET EE_ADD_RD: MOV A,#0A1H LCALL I2C_WRITE LCALL ACK RET I2C_WRITE: MOV R7,#8D CLR C LOOP: RLC A MOV SDA,C LCALL CLOCK DJNZ R7,LOOP RET I2C_READ: MOV R7,#8D LOOP2: SETB SDA SETB SCL NOP NOP MOV C,SDA RLC A CLR SCL NOP NOP DJNZ R7,LOOP2 MOV VERI,A RET |
Topic | Author | Date |
I2C Read Operation | 01/01/70 00:00 | |
Photo | 01/01/70 00:00 | |
get the real stuff | 01/01/70 00:00 | |
I agree and, in addition | 01/01/70 00:00 | |
Thanks for all Replies, But... | 01/01/70 00:00 | |
By the way... | 01/01/70 00:00 | |
DELAY time is required ,I guess | 01/01/70 00:00 | |
EEPROM needs time to write | 01/01/70 00:00 | |
what is it you do not understand | 01/01/70 00:00 | |
what is it you do not understand | 01/01/70 00:00 | |
I will not | 01/01/70 00:00 | |
True![]() | 01/01/70 00:00 | |
simulator | 01/01/70 00:00 | |
What addressing you are using | 01/01/70 00:00 |