#include <reg552.h>
#include <rtx51.h>
#include <stdio.h>
#include <stdlib.h>
#include <dsw.h>

#define	READ	1
#define	WRITE	0

#define	EEPROM_WAIT	1

extern void I2C_Start(void);
extern void I2C_Stop(void);
extern void Delay(unsigned char Dlzka);
extern void I2C_SendAddr(unsigned char Data);
extern void I2C_SendByte(unsigned char Data);
extern unsigned char I2C_Read(unsigned char);

void Write_Eprom_AT24Cxx(unsigned char Adresa, unsigned int EEprom_Addr, unsigned char Data)
{
 unsigned char subaddr;
 subaddr=(high(EEprom_Addr))*2;								//Pre pamati AT24C01 az AT24C16
 I2C_SendAddr(Adresa+subaddr+WRITE);
 I2C_SendByte(low(EEprom_Addr));
 I2C_SendByte(Data);
 I2C_Stop();
 os_wait(K_TMO,EEPROM_WAIT,NULL);					//Cakam 10ms cez RTX51 Full
}

unsigned char Read_Eprom_AT24Cxx(unsigned char Adresa, unsigned int EEprom_Addr)
{
 unsigned char LSB,subaddr;
 subaddr=(high(EEprom_Addr))*2;								//Pre pamati AT24C01 az AT24C16
 I2C_SendAddr(Adresa+subaddr+WRITE);
 I2C_SendByte(low(EEprom_Addr));
 I2C_SendAddr(Adresa+READ);
 LSB=I2C_Read(0);
 I2C_Stop();
 return(LSB);
}