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.
140 lines
2.5 KiB
140 lines
2.5 KiB
//////////////////////////////////////////////////////////////////////////
|
|
/// COPYRIGHT NOTICE
|
|
/// Copyright (c) 2022, 传控科技
|
|
/// All rights reserved.
|
|
///
|
|
/// @file iic_sim
|
|
/// @brief iic 模拟io 版本, 和cpu无关,唯一需要修改的就是头函数中的管脚定义
|
|
/// @info 如无必要请勿修改
|
|
///(本文件实现的功能的详述)
|
|
///
|
|
/// @version 1.1 CCsens technology
|
|
/// @author CC
|
|
/// @date 20180102
|
|
/// @info 如无必要请勿修改
|
|
/// @version 1.2 CCsens technology
|
|
/// @author CC
|
|
/// @date 20220404
|
|
/// @info 优化init函数
|
|
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "msp_siic1.h"
|
|
|
|
void L0_siic1_SDA_out(vType v)
|
|
{
|
|
if(v)
|
|
{
|
|
L0_SDA1_OUT();
|
|
}else
|
|
{
|
|
L0_SDA1_IN();
|
|
}
|
|
}
|
|
void L0_siic1_SDA(vType v)
|
|
{
|
|
/// printf("sda\r\n");
|
|
if(v)
|
|
{
|
|
L0_SDA1_ON();
|
|
}else
|
|
{
|
|
L0_SDA1_OFF();
|
|
}
|
|
}
|
|
|
|
vType L0_siic1_SDA_get(void)
|
|
{
|
|
|
|
if( 0!= L0_SDA1_AT())
|
|
{
|
|
return 1;
|
|
}else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
void L0_siic1_SCL_out(vType v)
|
|
{
|
|
if(v)
|
|
{
|
|
L0_SCL1_OUT();
|
|
}else
|
|
{
|
|
L0_SCL1_IN();
|
|
}
|
|
|
|
}
|
|
|
|
void L0_siic1_SCL(vType v)
|
|
{
|
|
if(v)
|
|
{
|
|
L0_SCL1_ON();
|
|
}else
|
|
{
|
|
L0_SCL1_OFF();
|
|
}
|
|
|
|
Lc_delay_us(D_SIIC1_DELAY);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void L0_siic1_close(void)
|
|
{
|
|
///管教设置为高阻态
|
|
}
|
|
|
|
|
|
|
|
void L1_siic1_INIT(vtype openclose)
|
|
{
|
|
|
|
ts_siic[D_IIC_CH1].n = 0;
|
|
ts_siic[D_IIC_CH1].sh = D_IIC_CH1;
|
|
ts_siic[D_IIC_CH1].sal = D_iic1_addr;//unsigned char sal; //
|
|
ts_siic[D_IIC_CH1].pf_SDA_out = L0_siic1_SDA_out;//void (*pf_SDA_out)(vType x); //
|
|
ts_siic[D_IIC_CH1].pf_SDA_set = L0_siic1_SDA;//void (*pf_SDA_set)(vType x); //
|
|
ts_siic[D_IIC_CH1].pf_SDA_get = L0_siic1_SDA_get;//vType (*pf_SDA_get)(void); //
|
|
ts_siic[D_IIC_CH1].pf_SCL_out = L0_siic1_SCL_out;//void (*pf_SCL_out)(vType x); //
|
|
ts_siic[D_IIC_CH1].pf_SCL_set = L0_siic1_SCL;//void (*pf_SCL_set)(vType x); //
|
|
/// ts_siic[D_IIC_CH1].pf_init = L1_siic1_INIT;//void (*pf_init)(void); //
|
|
|
|
|
|
|
|
if (openclose)
|
|
{
|
|
|
|
|
|
}else
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/***
|
|
|
|
|
|
TS_siic ts_siic1=
|
|
{
|
|
|
|
0,//vU32 n; //
|
|
1,//vType sh; //
|
|
D_iic1_addr,//unsigned char sal; //
|
|
L0_siic1_SDA_out,//void (*pf_SDA_out)(vType x); //
|
|
L0_siic1_SDA,//void (*pf_SDA_set)(vType x); //
|
|
L0_siic1_SDA_get,//vType (*pf_SDA_get)(void); //
|
|
L0_siic1_SCL_out,//void (*pf_SCL_out)(vType x); //
|
|
L0_siic1_SCL,//void (*pf_SCL_set)(vType x); //
|
|
L1_siic1_INIT//void (*pf_init)(void); //
|
|
};
|
|
|
|
|
|
**/
|
|
|
|
|