I got to wondering why I was getting nothing in the last build. So I trapped for failures to read and write. I did see that it was just not getting there, so tweaked the port assignments, etc. Here is what I get now:
** MCU started
** EEPROM write skipped
Reading:* Test EEPROM --> OK!
Reading:* Test EEPROM --> OK!
Reading:* Test EEPROM --> OK!
Reading:* Test EEPROM --> OK!
Reading:* Test EEPROM --> OK!
(I added "reading" to it)
The program is as follows:
------------------------------------------------------------------
'--------------------------------------------------------------------------------
'Tom,
'on my DataLoggers I have 16F876 or 18F252 and 2x 24LC512.
'The following code is tested.
'could you give it a try and let us know what the result was?
' -----[ Fuses ]------------------------------------------------
@ __CONFIG _CONFIG1H, _OSC_INTIO67_1H
@ __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H
@ __CONFIG _CONFIG3H, _PBADEN_OFF_3H & _MCLRE_OFF_3H
@ __CONFIG _CONFIG4L, _LVP_OFF_4L & 0bfh ;_XINST_OFF_4L
'
' -----[ Includes/Defines ]---------------------------------------------------------
include "modedefs.bas" 'include serout defines
OSCCON=%01111000
DEFINE OSC 8
While OSCCON.2=0:Wend
SCL var PortC.3 ' I2C Clock
SDA var PortC.4 ' I2C Data
ROM0 con %10100000 ' address of chip1
ADDR VAR word ' ROM Location
MonPort var PortC.6 ' Monitor Port
Mode con 16572 ' 4800 Baud 8N1 for Monitor Port
Test var byte[21] ' Test Array
I2Cdelay con 10 ' Delay after I2Cwrite
Temp var byte
CLEAR
SEROUT2 MonPort,Mode,[13,10,"** MCU started",13,10,13,10]
ADDR=100
I2CREAD SDA,SCL,ROM0,ADDR,[Temp]
IF Temp="*" THEN GOTO SkipWrite
I2CWRITE SDA,SCL,ROM0,ADDR,_
[$2A,$20,$54,$65,$73,$74,$20,$45,$45,$50,$52,$4F,_
$4D,$20,$2D,$2D,$3E,$20,$4F,$4B,$21],failw
PAUSE I2Cdelay
SEROUT2 MonPort,Mode,["** EEPROM written",13,10,13,10]
GOTO Loop
SkipWrite:
SEROUT2 MonPort,Mode,["** EEPROM write skipped",13,10,13,10]
Loop:
I2CREAD SDA,SCL,ROM0,addr,[str test\21],failr
SEROUT2 MonPort,Mode,["Reading:", STR Test\21,13,10]
PAUSE 1000
GOTO Loop
failr:
serout2 monport, mode,["failure to read",10,13]
return
failw:
serout2 monport, mode,["failure to write",10,13]
return
END
Bookmarks