Hola Amigos:
Les posteo un codigo de PBP extraido de los ejemplos que trae el PBP, lo adapte para probarlo con un circuito que estoy realizando en el proteus, la rutina consiste en escribir las primeras 16 posiciones de la memoria y luego leerlas utilizando los comandos i2cwrite y i2cread, sucede que al simularlos no escribe y por lo tanto lee cualquier cosa. El micro es un 16f877 funcionando a 4 mhz, tanto el pin de datos como el de clock tiene una resistencia de 4,7k nu pudeo encontrar el error, el codigo es el siguiente:
' I2CREAD and I2WRITE Commands
'
' Write to the first 16 locations of an external serial EEPROM
' Read first 16 locations back and send to serial out repeatedly
' Note: for EEPROMS with byte-sized address
Include "modedefs.bas" ' Include serial modes
DPIN var PORTD.6 ' I2C data pin
CPIN var PORTD.7 ' I2C clock pin
N0 var byte
N1 var byte
For N0 = 0 To 15 ' Loop 16 times
I2CWRITE DPIN,CPIN,$A0,N0,[N0] ' Write each location's address to itself
Pause 10 ' Delay 10ms after each write
Next N0
loop: For N0 = 0 To 15 ' Loop 8 times
I2CREAD DPIN,CPIN,$A0,N0,[N1] ' Read 2 locations in a row
serout2 PORTB.2, 84,[N1] ' Print 2 locations
Next N0
serout2 PORTB.2, 84,[13] ' Print linefeed
Goto loop
desde ya muchas gracias
