Subversion Repositories NaviCtrl

Rev

Rev 1 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1 Rev 41
Line 1... Line 1...
1
#ifndef __I2C
1
#ifndef __I2C_H
2
#define __I2C
2
#define __I2C_H
Line 3... Line 3...
3
 
3
 
-
 
4
 
-
 
5
#define I2C_SLAVE_ADDRESS               0x50
-
 
6
 
-
 
7
#define I2C_CMD_VERSION                 0x01
-
 
8
#define I2C_CMD_READ_MAG        0x02
Line 4... Line -...
4
 
-
 
5
#define I2C_SLAVE_ADDRESS 0x50
-
 
6
 
-
 
7
#define I2C_CMD_VERSION   0x01
-
 
8
struct str_I2C_Version
-
 
9
{
-
 
10
  u8 Hauptversion;
-
 
Line 11... Line -...
11
  u8 Nebenversion;
-
 
12
  u8 Comp;
-
 
13
} __attribute__((packed));
9
#define I2C_CMD_READ_HEADING    0x03
14
 
10
#define I2C_CMD_WRITE_CAL       0x04
15
#define I2C_CMD_WRITE_EEPROM   0x0A
11
 
16
#define I2C_CMD_READ_EEPROM    0x0B
12
 
-
 
13
typedef struct
-
 
14
{
17
struct str_I2C_EEPROM
15
  u8 Major;
Line 18... Line -...
18
{
-
 
19
  u8 Adresse;
16
  u8 Minor;
20
  u16 Inhalt;
17
  u8 Patch;
21
} __attribute__((packed));
18
  u8 Compatible;
22
 
19
} __attribute__((packed)) I2C_Version_t;
23
#define I2C_CMD_READ_MAG     0x02
20
 
24
struct str_I2C_Mag
21
typedef struct
Line 25... Line -...
25
{
-
 
-
 
22
{
26
  u16 MagX;
23
  s16 MagX;
27
  u16 MagY;
24
  s16 MagY;
28
  u16 MagZ;
25
  s16 MagZ;
29
} __attribute__((packed));
26
} __attribute__((packed)) I2C_Mag_t;
30
 
27
 
-
 
28
 
Line 31... Line -...
31
#define I2C_CMD_READ_HEADING     0x03
-
 
32
struct str_I2C_WriteNickRoll
29
typedef struct
33
{
30
{
34
  s16 Nick;
31
  s16 Nick;
35
  s16 Roll;
32
  s16 Roll;
36
} __attribute__((packed));
33
} __attribute__((packed)) I2C_WriteAttitude_t;
37
 
34
 
Line 38... Line 35...
38
#define I2C_CMD_WRITE_CAL     0x04
35
 
39
struct str_I2C_WriteCal
36
typedef struct
40
{
37
{
41
  u8 CalByte;
38
  u8 CalByte;
42
  u8 Dummy1;
-
 
43
  u8 Dummy2;
-
 
44
} __attribute__((packed));  
-
 
45
 
-
 
46
struct str_I2C_Heading
-
 
47
{
-
 
48
  u16 Heading;
-
 
49
} __attribute__((packed));
-
 
50
 
-
 
51
 
-
 
52
extern u8 Tx_Idx, Rx_Idx, I2C_Direction;
-
 
53
 
-
 
54
extern struct str_I2C_Heading       I2C_Heading;
-
 
55
extern struct str_I2C_WriteNickRoll I2C_WriteNickRoll;
-
 
56
extern struct str_I2C_Mag           I2C_Mag;
-
 
Line -... Line 39...
-
 
39
  u8 Dummy1;
-
 
40
  u8 Dummy2;
-
 
41
} __attribute__((packed)) I2C_Cal_t;
-
 
42
 
-
 
43
typedef struct
-
 
44
{
-
 
45
  s16 Heading;
-
 
46
} __attribute__((packed)) I2C_Heading_t;
-
 
47
 
-
 
48
typedef enum
-
 
49
{
-
 
50
        I2C_UNDEF,
-
 
51
        I2C_IDLE,
-
 
52
        I2C_TX_PROGRESS,
-
 
53
        I2C_RX_PENDING,
-
 
54
        I2C_RX_PROGRESS,
-
 
55
        I2C_OFF
-
 
56
} I2C_State_t;
-
 
57
 
-
 
58
extern volatile I2C_State_t I2C_State;
-
 
59
extern volatile u8 I2C_Direction;
-
 
60
extern volatile u32 I2C1_Timeout;
-
 
61
 
-
 
62
extern volatile I2C_Heading_t           I2C_Heading;
-
 
63
extern volatile I2C_WriteAttitude_t I2C_WriteAttitude;
-
 
64
extern volatile I2C_Mag_t                       I2C_Mag;
Line 57... Line 65...
57
extern struct str_I2C_EEPROM        I2C_ReadEEPROM, I2C_WriteEEPROM;
65
extern volatile I2C_Version_t           MK3MAG_Version;