Subversion Repositories MK3Mag

Rev

Rev 41 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 ingob 1
#ifndef _TWI_SLAVE_H_
2
#define _TWI_SLAVE_H_
3
 
32 holgerb 4
#include <inttypes.h>
1 ingob 5
 
32 holgerb 6
#define I2C_SLAVE_ADDRESS               0x50
1 ingob 7
 
32 holgerb 8
#define I2C_CMD_VERSION                 0x01
9
#define I2C_CMD_READ_MAG        0x02
10
#define I2C_CMD_READ_HEADING    0x03
11
#define I2C_CMD_WRITE_CAL       0x04
12
#define I2C_CMD_WRITE_EEPROM    0x0A
13
#define I2C_CMD_READ_EEPROM     0x0B
3 ingob 14
 
32 holgerb 15
 
16
typedef struct
3 ingob 17
{
32 holgerb 18
        uint8_t Major;
19
        uint8_t Minor;
41 killagreg 20
        uint8_t Patch;
32 holgerb 21
        uint8_t Compatible;
22
} I2C_Version_t;
3 ingob 23
 
32 holgerb 24
typedef struct
3 ingob 25
{
32 holgerb 26
        int16_t MagX;
27
        int16_t MagY;
28
        int16_t MagZ;
29
} I2C_Mag_t;
3 ingob 30
 
32 holgerb 31
 
32
typedef struct
7 hbuss 33
{
32 holgerb 34
        int16_t Nick;
35
        int16_t Roll;
37 killagreg 36
} I2C_WriteAttitude_t;
7 hbuss 37
 
16 holgerb 38
 
32 holgerb 39
typedef struct
3 ingob 40
{
32 holgerb 41
        uint8_t CalByte;
42
        uint8_t Dummy1;
43
        uint8_t Dummy2;
44
} I2C_WriteCal_t;
3 ingob 45
 
32 holgerb 46
typedef struct
16 holgerb 47
{
32 holgerb 48
        int16_t Heading;
49
} I2C_Heading_t;
3 ingob 50
 
32 holgerb 51
extern uint8_t NC_Connected;
52
extern I2C_Heading_t            I2C_Heading;
53
extern I2C_WriteAttitude_t      I2C_WriteAttitude;
54
extern I2C_Mag_t                        I2C_Mag;
55
extern I2C_Version_t            I2C_Version;
56
extern I2C_WriteCal_t           I2C_WriteCal;
3 ingob 57
 
58
 
32 holgerb 59
void I2C_Init(void);
3 ingob 60
 
61
 
32 holgerb 62
#endif // _TWI_SLAVE_H_
1 ingob 63