📄 sw_i2c_slave.h
字号:
#ifndef SW_I2C_SLAVE_H
#define SW_I2C_SLAVE_H
#include <msp430x12x2.h>
#include "configOptions.h"
//
// I2C Slave Address
//
#define I2C_SLAVE_ADDR 0x46 // I2C slave address
//
// I2C Timeout
//
#define I2C_TIMEOUT 33 // Number of ACLKs (33 is ~1 msec)
//
// SCL Port Pin
//
#ifdef FET_BOARD // MSP430 on FET board
#define SCL_PIN 0x08 // SCL is P1.3 on FET board
#else
#define SCL_PIN 0x01 // SCL is P1.0
#endif
#define SCL_IN P1IN
#define SCL_OUT P1OUT
#define SCL_DIR P1DIR
#define SCL_IE P1IE
#define SCL_IES P1IES
#define SCL_IFG P1IFG
//
// SDA Port Pin
//
#define SDA_PIN 0x01 // SDA is P2.0
#define SDA_IN P2IN
#define SDA_OUT P2OUT
#define SDA_DIR P2DIR
#define SDA_IE P2IE
#define SDA_IES P2IES
#define SDA_IFG P2IFG
//
// I2C Buffers
//
#define I2CMSGLEN 32 // Max I2C msg length
#define I2CRXBUFFLEN 32 // I2C Rx buffer size
#define I2CTXBUFFLEN 32 // I2C Tx buffer size
#define I2CTXINDEXMASK (I2CTXBUFFLEN-1) // Buffer overflow mask
#define I2CRXINDEXMASK (I2CRXBUFFLEN-1) // Buffer overflow mask
//
// I2C Registers
//
#define SCL_TBL R4 // Reserve R4 for SCL Tbl Pointer
#define I2C_DATA R5 // Reserve R5 for I2C data
#define I2C_IDX R6 // I2C buffer index
//
// I2C Events
//
#define I2C_MATCH 0x01 // I2C Address Match
#define I2C_STOP 0x02 // I2C Stop
#ifdef __IAR_SYSTEMS_ASM__ // Asm source file include
I2C_ADDR EQU I2C_SLAVE_ADDR // I2C Slave Address
#else // C source file includes
extern unsigned int I2CIdx;
extern unsigned char I2CEvent;
extern unsigned char I2CRxBuff[I2CRXBUFFLEN];
extern unsigned char I2CTxBuff[I2CTXBUFFLEN];
void initSWI2C(void);
void resetSWI2C(void);
void regI2CCallBack(void (*cbFunc)(unsigned char i2cData));
#endif
#endif /* SW_I2C_SLAVE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -