// if(addr > 0x0fff) return -1; // Address error
if(page > USER_MEMORY_BANKS) return -1; // Address Error
p = &freqset_temp;
- c = i2c_eeprom_burstread(0xa0, addr, (unsigned char *)p, sizeof(__freqset_t));
+ c = i2c_eeprom_burstread(I2CEEPROM_ADDR, addr, (unsigned char *)p, sizeof(__freqset_t));
// Pass 1 Read OK?
if(c == 0x00) return -2;
// Pass 1 check magic
sum = calcsum_frequencies(&freqset, 0xa5a5);
freqset.checksum = sum;
// Pass 1 write to rom.
- c = i2c_eeprom_burstwrite(0xa0, addr, (unsigned char *)p, sizeof(__freqset_t));
+ c = i2c_eeprom_burstwrite(I2CEEPROM_ADDR, addr, (unsigned char *)p, sizeof(__freqset_t));
return;
}
sum = calcsum_frequencies(&freqset_temp, 0xa5a5);
freqset_temp.checksum = sum;
- i = i2c_eeprom_burstwrite(0xa0, (page << 7)+ 512, (unsigned char *)(&freqset_temp), sizeof(__freqset_t));
+ i = i2c_eeprom_burstwrite(I2CEEPROM_ADDR, (page << 7)+ 512, (unsigned char *)(&freqset_temp), sizeof(__freqset_t));
}
void check_frequencies(void)
#include "i2c_eeprom.h"
-#define I2C_ROM_PAGE_SIZE 32
-
-
static unsigned char i2c_eeprom_write_1block(unsigned char i2caddr, unsigned int addr, unsigned char *data, unsigned int size)
{
unsigned char i;
#define I2C_EEPROM_H
+
#include <stdarg.h>
#include <stdio.h>
#ifdef __SDCC
#include "idle.h"
+
#ifdef __cplusplus
extern "C" {
#endif
+#define I2CEEPROM_ADDR 0xa0
+#define I2C_ROM_PAGE_SIZE 32
+
+
+
extern unsigned char i2c_eeprom_bytewrite(unsigned char i2caddr, unsigned int addr, unsigned char data);
extern unsigned char i2c_eeprom_byteread(unsigned char i2caddr, unsigned int addr);
extern unsigned char i2c_eeprom_burstwrite(unsigned char i2caddr, unsigned int addr, unsigned char *data, unsigned int bytes);
// Wait 50us
#define _ACM1602_SHORT_WAIT() delay100tcy(4)
// Wait 5ms
-#define _ACM1602_LONG_WAIT() delay10ktcy(40)
+#define _ACM1602_LONG_WAIT() idle_time_ms(50)
// Wait 200ms
//#define _ACM1602_LONG_LONG_WAIT() delay100ktcy(10)
#define _ACM1602_LONG_LONG_WAIT() idle_time_ms(125)
// Wait 5.5ms
-#define _ACM1602_I2C_WAIT() delay1ktcy(44)
+#define _ACM1602_I2C_WAIT() idle_time_ms(6)
#else
#define _ACM1602_TC_WAIT() __delay_us(5)
// Wait 50us
#define _ACM1602_SHORT_WAIT() __delay_us(50)
// Wait 5ms
-#define _ACM1602_LONG_WAIT() __delay_ms(50)
+#define _ACM1602_LONG_WAIT() idle_time_ms(50)
// Wait 125ms
#define _ACM1602_LONG_LONG_WAIT() idle_time_ms(125)
// Wait 5.5ms
-#define _ACM1602_I2C_WAIT() __delay_us(5500)
+#define _ACM1602_I2C_WAIT() idle_time_ms(6)
#endif