You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.9 KiB
91 lines
2.9 KiB
//////////////////////////////////////////////////////////////////////////
|
|
/// 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_
|
|
|
|
|