📄 i2cm_io.h
字号:
/*==================================================================================
File name : VI2CM_IO.H
Originator : Digital Control Systems Group
Texas Instruments
Description : Header file containing object definitions, proto type declaration and
default object initializers for I2C driver module
Date : 30/1/2002 (DD/MM/YYYY)
;==================================================================================*/
#ifndef __I2CMDRV_H__
#define __I2CMDRV_H__
#define NULL 0
typedef struct {
unsigned int taskIndex; /* Index into the task pointers */
unsigned int I2CCSR; /* I2C Control & Status register */
unsigned int I2CDAT; /* I2C Shift Register */
unsigned int bitCntr; /* Bit Counter */
void (*init)(void *); /* Initialisation routine */
void (*tick)(void *); /* I2C tick function */
}VI2CM_IO;
/* I2C Commands */
#define START_CMD 0x02
#define STOP_CMD 0x0A
#define RSTART_CMD 0x10
#define ACK_CMD 0x16
#define RECV_CMD 0x1C
#define TXMIT_CMD 0x22
#define IDLE_STATE 0
typedef enum { I2C_ISSUE_START=START_CMD,
I2C_ISSUE_RPTSTART=RSTART_CMD,
I2C_ISSUE_STOP=STOP_CMD,
I2C_ISSUE_ACKHI=0x200|ACK_CMD,
I2C_ISSUE_ACKLO=ACK_CMD,
I2C_TXMIT_ENABLE=TXMIT_CMD,
I2C_RECV_ENABLE=RECV_CMD }I2C_COMMAND;
/* Bit mask */
#define I2C_ACKSTAT 1
#define I2C_ACKDT 2
#define VI2CM_IO_DEFAULTS { IDLE_STATE,\
0,\
0,\
0,\
(void (*)(void *))vi2cmInit,\
(void (*)(void *))vi2cmTick}
typedef VI2CM_IO *VI2CM_IO_handle;
/* I2C Driver API */
void vi2cmInit(VI2CM_IO *);
void vi2cmTick(VI2CM_IO *);
/* I2C Driver Utilities */
unsigned int vi2cmFree(VI2CM_IO *);
void vi2cmCmd(VI2CM_IO *, I2C_COMMAND);
unsigned int vi2cmReadAck(VI2CM_IO *);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -