Saludos de nuevo, este es el código que ahora estoy usando, pero no funciona, es practicamente igual al de Lager, así que no se por que no va, la memoria sigue siendo una 24C04, utilizo los pines portc.5, portc.4 porque no puedo usar el modulo para i2c, esos pines los tengo ocupados, así que he recurrido a la utilizacion de las funciones i2cread y i2cwrite.
Include "modedefs.bas" " Include serial modes
DEFINE OSC 4
TRISC.6=0 " TX (PortC.6) como salida
TRISC.7=1 " RX (portc.7) como entrada
DPIN var PORTC.5 " I2C data pin
CPIN var PORTC.4 " I2C clock pin
B0 var byte
B1 var byte
B2 var byte
portb=0
portc=0
inicio:
For B0 = 20 To 35 " Loop 16 times
I2CWRITE DPIN,CPIN,$A0,B0,[B0] ",Nova " Write each location"s address to itself
Pause 20 " Delay 10ms after each write
Next B0
loop: For B0 = 20 To 35
I2CREAD DPIN,CPIN,$A0,B0,[B1] ",B2]",Nova " Read 2 locations in a row
Serout2 portc.6, 188, [" leido: ",dec B1] ",dec B2," "] " Print 2 locations 2400 baudrate
Next B0
pause 200
Serout2 portc.6, 188, [10] " Print linefeed
goto loop
end
"Nova:
" Serout2 portc.6, 188, ["NO VA"]
" pause 200
"goto inicio
ESTO ES LO QUE VISUALIZA EL HYPERTERMINAL:
leido: 32 leido: 32 leido: 32 leido: 32 leido: 3
2 leido: 32 leido: 32 leido: 32 leido: 32 leido: 32 leido: 32 leido: 32 leido: 3
2 leido: 32 leido: 32 leido: 32
Creo que no estoy comunicandome con la eeprom porque si utilizo el parametro de etiqueta de la funcion i2cread siempre se va a la etiqueta dadome a entender que no va la comunicación.