📄 twi.h
字号:
#ifndef __AT24C02__H
#define __AT24C02__H
//TWI状态定义
//MT 主方式传输 MR 主方式接收
#define START 0x08
#define RE_START 0x10
#define MT_SLA_ACK 0x18
#define MT_SLA_NOACK 0x20
#define MT_DATA_ACK 0x28
#define MT_DATA_NOACK 0x30
#define MR_SLA_ACK 0x40
#define MR_SLA_NOACK 0x48
#define MR_DATA_ACK 0x50
#define MR_DATA_NOACK 0x58
//常用TWI操作(主模式写和主模式读)
#define Start() (TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE))
#define Stop() (TWCR=((1<<TWINT)|(1<<TWSTO)|(1<<TWEN))&(~(1<<TWIE)))
#define TestAck() (TWSR&0xf8)
#define Twi() (TWCR=(1<<TWINT)|(1<<TWEN)|(1<<TWIE))
#define Write8Bit(x) {TWDR=(x);TWCR=(1<<TWINT)|(1<<TWEN)|(1<<TWIE);}
#define BUSY_PORT PORTG_Bit3
#define BUSY_DDR DDRG_Bit3
#define SetI2C_Busy() {BUSY_DDR =1;BUSY_PORT =0;}
#define ReleaseI2C_Busy() {BUSY_DDR =0;BUSY_PORT =1;}
#define I2C_BUSY() PING_Bit3
enum __I2CEESAVE{I2CSAVE_NULL=0,I2C_KEY,I2C_MENUID,I2C_CALLTIME,I2C_TIME};
extern unsigned char g_i2ceesave; //I2CEEPROM保存标志
enum __ADDEEPROM{ADD_LCD=1,ADD_KEYFLAG=2,ADD_CURKEY=3,ADD_MENUID=4,
ADD_CALLTIME=5,ADD_TIME=6,ADD_IP=6+10,
ADD_PORT=6+10+5};
//读写函数
unsigned char I2C_Write(unsigned char Wdata,unsigned char RomAddress) ;
unsigned char I2C_Read(unsigned char RomAddress);
void I2C_Init(void);
//读写操作中间变量
extern unsigned char EE_STATE; //EEPROM操作状态
extern unsigned char EE_DATA; //写入的数据
extern unsigned char EE_ADD; //写入的地址
#endif /*__AT24C02__H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -