📄 i2c.h
字号:
#include "sys.h"#include "excalibur.h"/* Change this define depending on what temperature sensor you have *//* A0 indicates that last 3 I2C address bits are 000, and A5 is 101 */#define A0/* I2C Address - 1001 101x for A5 parts *//* I2C Address - 1001 000x for A0 parts */#ifdef A5#define I2C_TEMP_ADDR 0x9A#else#define I2C_TEMP_ADDR 0x90#endif#define I2C_RTC_ADDR 0xD0/* Write only register */#define i2c_cmd_sta 0x80 /* Generated start/rstart condition */#define i2c_cmd_sto 0x40 /* Generate stop condition */#define i2c_cmd_rd 0x20 /* Read from slave */#define i2c_cmd_wr 0x10 /* Write to slave */#define i2c_cmd_ack 0x8 /* Ack=0 sends ACK, ACK=1 sends NACK */#define i2c_cmd_iack 0x1 /* Clears interrupt when set to 1 *//* Read only register */#define i2c_status_rxack 0x80 /* 1 indicates NACK received, 0 is ACK */#define i2c_status_busy 0x40 /* 1 after START, 0 after STOP */#define i2c_status_al 0x20 /* 1 when arbitration has been lost */#define i2c_status_tip 0x2 /* 1 when transferring data */#define i2c_status_if /* Set when one byte of transfer has occurred */#define i2c_mode_write 0#define i2c_mode_read 1typedef volatile struct{ volatile int u16prescale_l; volatile int u16prescale_h; volatile int u16control; /* Bit 7 is enable, bit 6 is IE */ volatile int u16buf; volatile int u16cmdstat;} T_i2c;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -