66 lines
785 B
C
66 lines
785 B
C
/*
|
|
* at24cxx.c
|
|
*
|
|
* Created on: Mar 3, 2024
|
|
* Author: gxms0
|
|
*/
|
|
#include "at24cxx.h"
|
|
|
|
|
|
uint16_t at24xcc_read(AT24C_ptr ptr, uint8_t reg,uint8_t *data, uint16_t len)
|
|
{
|
|
uint16_t state = 0;
|
|
|
|
state = ptr->read_drv(ptr->i2c, ptr->address, reg, data, len);
|
|
|
|
return state;
|
|
}
|
|
|
|
uint16_t at24xcc_write(AT24C_ptr ptr, uint8_t reg,uint8_t *data, uint16_t len)
|
|
{
|
|
uint16_t state = 0;
|
|
|
|
state = ptr->write_drv(ptr->i2c, ptr->address, reg, data, len);
|
|
|
|
return state;
|
|
}
|
|
|
|
|
|
void at24cxx_init(AT24C_ptr ptr,I2C_ptr i2c,uint16_t address)
|
|
{
|
|
ptr->address = address;
|
|
|
|
ptr->i2c = i2c;
|
|
|
|
//Çý¶¯°ó¶¨
|
|
ptr->read_drv = &i2c_read;
|
|
ptr->write_drv = &i2c_write;
|
|
|
|
//¶Áд°ó¶¨
|
|
ptr->read = &at24xcc_read;
|
|
ptr->write = &at24xcc_write;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|