Subversion Repositories NaviCtrl

Rev

Rev 1 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef __I2C
#define __I2C


#define I2C_SLAVE_ADDRESS 0x50

#define I2C_CMD_VERSION   0x01
struct str_I2C_Version
{
  u8 Hauptversion;
  u8 Nebenversion;
  u8 Comp;
} __attribute__((packed));

#define I2C_CMD_WRITE_EEPROM   0x0A
#define I2C_CMD_READ_EEPROM    0x0B
struct str_I2C_EEPROM
{
  u8 Adresse;
  u16 Inhalt;
} __attribute__((packed));

#define I2C_CMD_READ_MAG     0x02
struct str_I2C_Mag
{
  u16 MagX;
  u16 MagY;
  u16 MagZ;
} __attribute__((packed));

#define I2C_CMD_READ_HEADING     0x03
struct str_I2C_WriteNickRoll
{
  s16 Nick;
  s16 Roll;
} __attribute__((packed));

#define I2C_CMD_WRITE_CAL     0x04
struct str_I2C_WriteCal
{
  u8 CalByte;
  u8 Dummy1;
  u8 Dummy2;
} __attribute__((packed));  

struct str_I2C_Heading
{
  u16 Heading;
} __attribute__((packed));


extern u8 Tx_Idx, Rx_Idx, I2C_Direction;

extern struct str_I2C_Heading       I2C_Heading;
extern struct str_I2C_WriteNickRoll I2C_WriteNickRoll;
extern struct str_I2C_Mag           I2C_Mag;
extern struct str_I2C_EEPROM        I2C_ReadEEPROM, I2C_WriteEEPROM;
extern struct str_I2C_Version       I2C_Version;
extern struct str_I2C_WriteCal      I2C_WriteCal;
extern void I2C1_Init(void);
extern void SendI2C_Command(u8 command);
extern u8 CompassUpdateActiv;
extern volatile u8 I2C_ReadRequest;
extern u8 CompassCalState;


#endif