Why then this piece of code doesn't work on Atmel 24C256 and works with
24LC32A from Microchip? I get five times 04 on LCD in case of Atmel chip.
The hardware configuration is the same: pin1,2,3,8 on Vcc,4 on gnd, 5 SDA amd 6 scl with 4K7 pull ups. Pic is 16F876 with 20MHz crystal.
Code:
define LOADER_USED 1
define OSC 20
define LCD_EREG PORTC
define LCD_EBIT 1
Symbol SDA = PORTC.2
Symbol SCL = PORTC.3
addr_EE var word
value var byte
CTRL_EE con %10101110
ADCON1=7
TRISA=$00
lcdout $fe,1
main:
lcdout "Writing..."
pause 200
value=1
addr_EE=0
I2CWrite sda, scl, CTRL_EE, addr_EE, [value]
pause 10
value=2
addr_EE=1
I2CWrite sda, scl, CTRL_EE, addr_EE, [value]
pause 10
value=3
addr_EE=2
I2CWrite sda, scl, CTRL_EE, addr_EE, [value]
pause 10
value=4
addr_EE=3
I2CWrite sda, scl, CTRL_EE, addr_EE, [value]
pause 10
value=5
addr_EE=4
I2CWrite sda, scl, CTRL_EE, addr_EE, [value]
pause 10
lcdout $fe,1,"Finished"
lcdout $fe,1
for addr_EE=0 to 4
I2CRead sda, scl, CTRL_EE, addr_EE, [value]
lcdout dec2 value," "
next
pa: goto pa
end
Thanks for answers!
Bookmarks