Files
WoodDrone/dev/eep.cpp
Dana Markova 0de214c9a1 first commit
2025-07-28 13:21:36 +03:00

36 lines
919 B
C++

#include "i2c.h"
#include "eep.h"
static const unsigned char EEP_Addr = 0x50; // AT24C256
static inline short Rev16(short v)
{
asm("REV16 %1, %0" : "=r" (v) : "r" (v)); // v = v<<8 | v>>8;
return v;
}
//------------------------------------------------------------------------------
void EEP_Init() // AT24C256
{
I2C1_Init();
}
//------------------------------------------------------------------------------
void EEP_Read(unsigned short Addr, void* Data, unsigned short Size)
{
Addr=Rev16(Addr);
I2C1_Write(EEP_Addr, &Addr, 2);
I2C1_Read(EEP_Addr, Data, Size);
I2C1_Stop();
}
//------------------------------------------------------------------------------
void EEP_Write(unsigned short Addr, const void* Data, unsigned short Size)
{
Addr=Rev16(Addr);
I2C1_Write2(EEP_Addr, &Addr, 2, Data, Size);
I2C1_Stop();
}
//------------------------------------------------------------------------------