?? iic.h
字號:
#ifndef IIC_H
#define IIC_H
void I2C_Write(void);
void I2C_Read(void);
#define TWI_ADDR 0xA2
/* TWSR values (not bits) */
/* Master */
#define I2C_START 0x08
#define I2C_RESTART 0x10
/* Master Transmitter */
#define I2C_MT_SLA_ACK 0x18
#define I2C_MT_SLA_NACK 0x20
#define I2C_MT_DATA_ACK 0x28
#define I2C_MT_DATA_NACK 0x30
#define I2C_MT_ARB_LOST 0x38
/* Master Receiver */
#define I2C_MR_ARB_LOST 0x38
#define I2C_MR_SLA_ACK 0x40
#define I2C_MR_SLA_NACK 0x48
#define I2C_MR_DATA_ACK 0x50
#define I2C_MR_DATA_NACK 0x58
/* Slave Transmitter */
#define I2C_ST_SLA_ACK 0xA8
#define I2C_ST_LOST_SLA_ACK 0xB0
#define I2C_ST_DATA_ACK 0xB8
#define I2C_ST_DATA_NACK 0xC0
#define I2C_ST_LAST_DATA 0xC8
/* Slave Receiver */
#define I2C_SR_SLA_ACK 0x60
#define I2C_SR_LOST_SLA_ACK 0x68
#define I2C_SR_GCALL_ACK 0x70
#define I2C_SR_LOST_GCALL_ACK 0x78
#define I2C_SR_DATA_ACK 0x80
#define I2C_SR_DATA_NACK 0x88
#define I2C_SR_GCALL_DATA_ACK 0x90
#define I2C_SR_GCALL_DATA_NACK 0x98
#define I2C_SR_STOP 0xA0
#define I2C_Start() (TWCR = (BIT(TWINT)|BIT(TWSTA)|BIT(TWEN)))
#define I2C_Stop() (TWCR = (BIT(TWINT)|BIT(TWSTO)|BIT(TWEN)))
#define I2C_Wait() while(!(TESTMSK(TWCR,TWINT)))
#define I2C_ChkAck() (TWSR&0xf8) //check ack
#define I2C_SendByte(x) (TWDR = (x),TWCR = BIT(TWINT)|BIT(TWEN))
#define I2C_RcvAckByte() (TWCR = (BIT(TWINT)|BIT(TWEN)|BIT(TWEA)))
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -