
		
' 21 bájtos tömbök irása-olvasása 24l512  i2c bus EEpropm                           


'     LCDMER panel 16f887*ra pickit2 USB 

	include "modedefs.bas"

DEFINE LCD_DREG PORTd
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTc
DEFINE LCD_RSBIT 5
DEFINE LCD_EREG PORTc
DEFINE LCD_EBIT 4
DEFINE LCD_BITS 4 ' rem 8 bit
DEFINE LCD_LINES 4
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
DEFINE OSC 4
define I2C_SLOW 1
DEFINE I2C_HOLD 1


pause 200

MDA var portb.7 :' eeprom sda pin #5
MCL var portb.6  :' eeprom scl pin #6  
ADDR    var word
MSZ     VAR WORD
MSZ1    var MSZ.byte0
MSZ2    var MSZ.byte1
XXX     VAR BYTE
ell     var byte
ctr     var byte
tomb    var  byte[21]                                         

pause 500
lcdout $fe,1," START WRITE !"
pause 1000 
msz2=0
i:
for msz1=1 to 100
ujra:
gosub Eeir
pause 100   
gosub eeolv
if ell<>ctr then
 lcdout $fe,1," HIBA !!!!",dec msz1
 pause 500
 msz1=msz1+1
 goto ujra
endif
GOSUB DISPLAY
next

lcdout $fe,1," START READ !"
pause 1000 
for msz1=1 to 100
gosub eeolv
if ell=ctr then gosub display
pause 1000
next
end

display:

pause  100
lcdout $fe,1,dec msz1,".",dec tomb[1]," ", dec tomb[2]," ",dec tomb[20]," "
Lcdout $fe,$c0, dec tomb[21]," ",dec ell,"--",dec ctr
return

EEolv:

 ADDR=Msz1*21
 ADDR=1008+ADDR  
 I2Cread MDA,MCL,$A0,ADDR,[str tomb\21] 
  ell=0
 for xxx=1 to 20
 ell=ell+tomb[xxx]
  next
 ctr=tomb[21]
 return

EEIR:
 ADDR=Msz1*21
 ADDR=1008+ADDR
 ctr=0
 for xxx=1 to 20
 tomb[xxx]=xxx
 ctr=ctr+xxx
 next
 tomb[21]=ctr
 I2CWrite MDA,MCL,$A0,ADDR,[str tomb\21] 
 return
