Subversion Repositories MK3Mag

Compare Revisions

Ignore whitespace Rev 1 → Rev HEAD

/branches/MK3Mag V0.14 Code Redesign Killagreg/twislave.h
0,0 → 1,63
#ifndef _TWI_SLAVE_H_
#define _TWI_SLAVE_H_
 
#include <inttypes.h>
 
#define I2C_SLAVE_ADDRESS 0x50
#define I2C_PROTOCOL_COMP 1
 
#define I2C_CMD_VERSION 0x01
#define I2C_CMD_READ_MAG 0x02
#define I2C_CMD_READ_HEADING 0x03
#define I2C_CMD_WRITE_CAL 0x04
#define I2C_CMD_WRITE_EEPROM 0x0A
#define I2C_CMD_READ_EEPROM 0x0B
 
 
typedef struct
{
uint8_t Major;
uint8_t Minor;
uint8_t Compatible;
} I2C_Version_t;
 
typedef struct
{
int16_t MagX;
int16_t MagY;
int16_t MagZ;
} I2C_Mag_t;
 
 
typedef struct
{
int16_t Nick;
int16_t Roll;
} I2C_WriteAttitude_t;
 
 
typedef struct
{
uint8_t CalByte;
uint8_t Dummy1;
uint8_t Dummy2;
} I2C_WriteCal_t;
 
typedef struct
{
int16_t Heading;
} I2C_Heading_t;
 
extern uint8_t NC_Connected;
extern I2C_Heading_t I2C_Heading;
extern I2C_WriteAttitude_t I2C_WriteAttitude;
extern I2C_Mag_t I2C_Mag;
extern I2C_Version_t I2C_Version;
extern I2C_WriteCal_t I2C_WriteCal;
 
 
void I2C_Init(void);
 
 
#endif // _TWI_SLAVE_H_