Subversion Repositories Code-Repo

Rev

Rev 228 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 228 Rev 232
Line 41... Line 41...
41
#define I2C_ERR_OVERRUN         0x36
41
#define I2C_ERR_OVERRUN         0x36
42
#define I2C_ERR_NODATA          0x37
42
#define I2C_ERR_NODATA          0x37
43
#define I2C_ERR_BUFFER_OVERRUN  0x38
43
#define I2C_ERR_BUFFER_OVERRUN  0x38
44
 
44
 
45
typedef struct {
45
typedef struct {
46
    char buffer_in[MAXI2CBUF];
46
    uint8_t buffer_in[MAXI2CBUF];
47
    char buffer_in_len;
47
    uint8_t buffer_in_len;
48
    char buffer_in_len_tmp;
48
    uint8_t buffer_in_len_tmp;
49
    char buffer_in_read_ind;
49
    uint8_t buffer_in_read_ind;
50
    char buffer_in_write_ind;
50
    uint8_t buffer_in_write_ind;
51
    
51
    
52
    char buffer_out[MAXI2CBUF];
52
    uint8_t buffer_out[MAXI2CBUF];
53
    char buffer_out_len;
53
    uint8_t buffer_out_len;
54
    char buffer_out_ind;
54
    uint8_t buffer_out_ind;
55
 
55
 
56
    char operating_mode;
56
    uint8_t operating_mode;
57
    char operating_state;
57
    uint8_t operating_state;
58
    char return_status;
58
    uint8_t return_status;
59
 
59
 
60
    char master_dest_addr;
60
    uint8_t master_dest_addr;
61
    char master_status;
61
    uint8_t master_status;
62
    
62
    
63
    char slave_in_last_byte;
63
    uint8_t slave_in_last_byte;
64
    char slave_sending_data;
64
    uint8_t slave_sending_data;
65
} I2C_DATA;
65
} I2C_DATA;
66
 
66
 
67
void I2C_Init(I2C_DATA *data);
67
void I2C_Init(I2C_DATA *data);
68
void I2C_Interrupt_Handler(void);
68
void I2C_Interrupt_Handler(void);
69
void I2C_Interrupt_Slave(void);
69
void I2C_Interrupt_Slave(void);
70
void I2C_Interrupt_Master(void);
70
void I2C_Interrupt_Master(void);
71
void I2C_Configure_Slave(char);
71
void I2C_Configure_Slave(uint8_t address);
72
void I2C_Configure_Master(char speed);
72
void I2C_Configure_Master(uint8_t speed);
73
void I2C_Master_Send(char address, char length, char *msg);
73
void I2C_Master_Send(uint8_t address, uint8_t length, uint8_t *msg);
74
void I2C_Master_Recv(char address, char length);
74
void I2C_Master_Recv(uint8_t address, uint8_t length);
75
void I2C_Master_Restart(char address, char msg, char length);
75
void I2C_Master_Restart(uint8_t address, uint8_t msg, uint8_t length);
76
char I2C_Get_Status(void);
76
uint8_t I2C_Get_Status(void);
77
char I2C_Buffer_Len(void);
77
uint8_t I2C_Buffer_Len(void);
78
char I2C_Read_Buffer(char *buffer);
78
uint8_t I2C_Read_Buffer(uint8_t *buffer);
79
char I2C_Process_Send(char);
79
uint8_t I2C_Process_Receive(uint8_t);
80
 
80
 
81
#endif
81
#endif
82
82