////////////////////////////////////////////////////////////////////////// /// COPYRIGHT NOTICE /// Copyright (c) 2018, 传控科技 /// All rights reserved. /// /// @file iic_sim /// @brief iic 模拟io 版本, 和cpu无关,唯一需要修改的就是头函数中的管脚定义 /// @info 除了io配置 ,其他地方如无必要请勿修改 ///(本文件实现的功能的详述) /// /// @version 1.1 CCsens technology /// @author CC /// @date 20180102 // ////////////////////////////////////////////////////////////////////////// #ifndef _SIICx_H_ #define _SIICx_H_ #include "c_lib.h" #include "c_type51.h" ///>>>端口位定义,可修改!!!!!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #include "bsp_config.h" #include "msp_siicx.h" #define L0_slc_1_delay() Lc_delay_nop(4); #define L0_slc_0_delay() Lc_delay_nop(1); // 4us #define L0_I2C_delay(x) ///Lc_delay_us(80) typedef struct { unsigned long n; vType sh; unsigned char sal; void (*pf_SDA_out)(vType x); void (*pf_SDA_set)(vType x); vType (*pf_SDA_get)(void); void (*pf_SCL_out)(vType x); void (*pf_SCL_set)(vType x); /// void (*pf_init)(vType x); }TS_siic_; #define D_IIC_NUM 2 #define D_IIC_CH1 0 #define D_IIC_CH2 1 #define D_IIC_CH3 2 #define D_IIC_CH4 3 extern TS_siic_ xdata ts_siic[D_IIC_NUM]; #define D_IIC_GSENSOR D_IIC_CH1 //<<<<端口位定义,可修改!!!!!!<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< extern void L0_iicx_INIT(TS_siic_ *p,unsigned char v); extern void L0_iicx_SendData(TS_siic_ *p,unsigned char c); extern unsigned char L0_iicx_ReceiveData(TS_siic_ *p); void L2_iicx_Read1Reg1Data(TS_siic_ *p,unsigned char reg,unsigned char *r); extern void L0_iicx_ReadNByte(TS_siic_ *p,unsigned char *b,unsigned char n); /////////////////////////////// ///写入一个reg 为后续的写命令或者读取服务 extern void L1_iicx_Write1Reg(TS_siic_ *p,unsigned char reg); // sla.(reg)=cmd extern void L1_iicx_Write2Reg(TS_siic_ *p,unsigned char reg,unsigned char reg2); extern void L2_iicx_Write1Reg1Cmd(TS_siic_ *p,unsigned char reg,unsigned char cmd); //读取reg地址的n个数据 sla.(reg) sla.(reg+1)................ sla.(reg+n) extern unsigned char L2_iicx_Read1Reg1DataR(TS_siic_ *p,unsigned char reg); extern void L1_iicx_Read2cmd(TS_siic_ *p, unsigned char *c,unsigned char *b,unsigned char n); extern void L2_iicx_Write2Cmd(TS_siic_ *p, unsigned char reg,unsigned char cmd,unsigned char cmd2); extern void L2_iicx_Read2Cmd(TS_siic_ *p, unsigned char cmd,unsigned char cmd2, unsigned char *buf,unsigned char n); void L2_iicx_Read1RegNData(TS_siic_ *p,unsigned char reg, unsigned char *r,unsigned char n); #define D_cmd_filter_iicx 0xf1 extern void L3_iicx_debug(u8 filter); extern void L1_siic1_INIT(vtype openclose); #endif// #ifndef _IIC_H_