📄 twi_lib.h
字号:
/*H**************************************************************************
* NAME: twi_lib.h
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE: snd1c-refd-nf-4_0_3
* REVISION: 1.2
*----------------------------------------------------------------------------
* PURPOSE:
* This file contains the I2C driver definition
*****************************************************************************/
#ifndef _I2C_LIB_H_
#define _I2C_LIB_H_
#define I2C_NB_SLAVE_DATA 100
/*_____ D E F I N I T I O N S ______________________________________________*/
typedef struct{ unsigned char address;
unsigned char rw;
unsigned char nbbytes;
unsigned char *buf;
} I2C_type_message;
/*_____ D E C L A R A T I O N ______________________________________________*/
extern bit b_I2C_busy;
extern unsigned char I2C_Err;
extern xdata I2C_type_message I2C_message; // The I2C message to be sent in Master Mode
extern unsigned char xdata I2C_slave_data[I2C_NB_SLAVE_DATA]; //The slave data buffer when I2C ask in slave
/*_____ M A C R O S ________________________________________________________*/
#define I2C_RATIO_256 0x00
#define I2C_RATIO_224 0x01
#define I2C_RATIO_192 0x02
#define I2C_RATIO_160 0x03
#define I2C_RATIO_960 0x80
#define I2C_RATIO_120 0x81
#define I2C_RATIO_60 0x82
#define I2C_RATIO_TIMER1 0x83
#define I2C_CR2 0x80
#define I2C_SSIE 0x40
#define I2C_STA 0x20
#define I2C_STO 0x10
#define I2C_SI 0x08
#define I2C_AA 0x04
#define I2C_CR1 0x02
#define I2C_CR0 0x01
#define I2C_WAIT_EVENT { while ( (SSCON & I2C_SI) != I2C_SI ); }
#define I2C_SET_START { SSCON |= I2C_STA; }
#define I2C_CLEAR_START { SSCON &= ~I2C_STA; }
#define I2C_SET_STOP { SSCON |= I2C_STO; }
#define I2C_CLEAR_STOP { SSCON &= ~I2C_STO; }
#define I2C_SET_AA { SSCON |= I2C_AA; }
#define I2C_CLEAR_AA { SSCON &= ~I2C_AA; }
#define I2C_CLEAR_SI { SSCON &= ~I2C_SI; }
#define Tranfer_OK 0
#define BusError 1
#define NoHostAdrAck 2
#define NoHostDataAck 3
#define ArbitrationLost 4
#define UnknownError 5
#define I2C_NOT_FREE 6
#define I2C_READ 1
#define I2C_WRITE 0
/*_____ P R O T O T Y P E S ____________________________________________________________*/
unsigned char I2C_baud_rate (unsigned int ratio);
unsigned char I2C_Send_Message_polling( unsigned char slave_adr,bit rw, unsigned char nbytes, unsigned char *info );
unsigned char I2C_Send_Message_interrupt( unsigned char slave_adr,bit rw, unsigned char nbytes, unsigned char *info);
void I2C_decode_status();
unsigned char I2C_slave_polling(void);
void I2C_slave_interrupt(void);
#endif /* _I2C_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -