Subversion Repositories MK3Mag

Rev

Rev 22 | Rev 29 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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