📄 source.h
字号:
#define EXT_INT0 0
#define T0_INT 1
#define EXT_INT1 2
#define T1_INT 3
#define SERL_INT 4
#define T2_INT 5
#define TIMER2H 0xc4 //10ms
#define TIMER2L 0x00
#define TIMER0H (256-13)//20us
#define TIMER_NUM 8
#define WRITE_TIMER 0
#define READ_TIMER 1
#define WRITE_TIMER_LEN 400 //4 second.
#define READ_TIMER_LEN 200 //2 second
#define SCL P3_4
#define SDA P3_5
#define EEPROMWPN XBYTE[0XFC34]
#define EEPROMCSN P1_0
#define EEPROMSO P1_1
#define EEPROMSI P1_2
#define EEPROMSCK P1_3
#define EEPROM_MAX_SPACE 8192
#define EEPROM_PAGE_LEN 32
#define OffsetOf(Struct,Field) (unsigned int)(&(((Struct *)0)->Field))
#define WRITE_BIT 0
#define READ_BIT 1
#define STOP 2
#define DATA 3
#define LOW_ADDRESS_WRITE 4
#define HIGH_ADDRESS_WRITE 5
#define LOW_ADDRESS_READ 6
#define HIGH_ADDRESS_READ 7
#define DEVICE_READ 8
#define DATA_READ 9
#define DATA_WRITE 10
#define OK 0
#define NOK 1
/*为一个宏定义,由此可以得出来结构体成员在结构中的位置*/
union char_int{
unsigned int nt;
unsigned char ar[2];
};
typedef struct{
unsigned char vol;
unsigned int cnt;
unsigned char buf[1024];
}EEPROM_DATA;
struct MY_TIMER{
unsigned char enable;
unsigned int count;
unsigned int length;
unsigned char flag;
};
typedef struct I2c_desc{
unsigned char state;
unsigned char operate;
unsigned char Error;
unsigned char I2CByte;
unsigned int loadAddress;
unsigned char deviceAddress;
unsigned char mode;
unsigned int nbI2CByte;
unsigned char countBit;
unsigned char nb_ACK;
void (*I2CTCHandler) (struct I2c_desc *I2C_pt);
void (*I2cFinish) (struct I2c_desc *);
unsigned int Timer_Gap_us;
unsigned char *TxEnd;
unsigned char *RxEnd;
unsigned int Timer_Gap_ms;
}I2Cdesc;
typedef struct {
unsigned int eeprom_read_over;
unsigned int eeprom_write_over;
unsigned int eeprom_read_ok;
unsigned int time_read_over;
unsigned int time_write_over;
unsigned int temperature_read_over;
unsigned int dealing;
} TMDEV_OPS;
extern I2Cdesc I2c; //the device decriptor
extern unsigned char eeprom_write(unsigned int adr, unsigned int len, unsigned char *src);
extern unsigned char eeprom_read(unsigned int adr, unsigned int len, unsigned char *src);
extern void I2CWrite (I2Cdesc *I2C_pt, unsigned int loadAddress, unsigned int nbByte);
extern void I2CRead (I2Cdesc *I2C_pt, unsigned int loadAddress, unsigned int nbByte);
extern void I2CTxSendByte (I2Cdesc *I2C_pt);
extern void I2CTxSendDeviceAddress (I2Cdesc *I2C_pt);
extern void I2CTxSendBit (I2Cdesc *I2C_pt);
extern void I2CRxReceiveByte (I2Cdesc *I2C_pt);
extern void I2CRxReceiveBit (I2Cdesc *I2C_pt);
extern void I2CTxSendStartSDA (I2Cdesc *I2C_pt);
extern void I2CTxSendStartSCL (I2Cdesc *I2C_pt);
extern void I2CTxPrepareSTOP (I2Cdesc *I2C_pt);
extern void I2CTxSendStopSCL (I2Cdesc *I2C_pt);
extern void I2CTxSendStopSDA (I2Cdesc *I2C_pt);
extern void I2CTxPrepareACK (I2Cdesc *I2C_pt);
extern void I2CTxWaitACK (I2Cdesc *I2C_pt);
extern void I2CRxDoACK (I2Cdesc *I2C_pt);
extern void I2CTxSetSCL (I2Cdesc *I2C_pt);
extern void I2CTxClearSCL (I2Cdesc *I2C_pt);
extern void I2CRxSetSCL (I2Cdesc *I2C_pt);
extern void I2CRxClearSCL (I2Cdesc *I2C_pt);
extern void Stop_I2c_Timer(void);
extern void Start_I2c_Timer(unsigned int us);
extern void I2C_lineOpen (I2Cdesc *I2C_pt, unsigned int us);
extern void I2CError(I2Cdesc *I2C_pt);
extern void At24c64_Init(void);
extern void At24c64_Read(unsigned char *buf,unsigned int adr,unsigned int len);
extern void At24c64_Write(unsigned char *buf,unsigned int adr,unsigned int len);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -