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.

149 lines
2.6 KiB

1 year ago
//////////////////////////////////////////////////////////////////////////
/// COPYRIGHT NOTICE
/// Copyright (c) 2018, ���ؿƼ�
/// All rights reserved.
///
/// @file iic_sim
/// @brief iic ģ��io �汾�� ��cpu�޹أ�Ψһ��Ҫ�޸ĵľ���ͷ�����еĹܽŶ���
/// @info ���ޱ�Ҫ�����޸�
///�����ļ�ʵ�ֵĹ��ܵ�������
///
/// @version 1.1 CCsens technology
/// @author CC
/// @date 20180102
//
//////////////////////////////////////////////////////////////////////////
#include "msp_siic1.h"
TS_siic ts_siic1;
/*------------------------------------------------
˿ڶ
I2CߴݹУÿһֽڣ
ҪһӦ״̬λݵ
ͨӦλ֪Ӧλʱ
Ӧλ״̬ѭ˭
˭ԭ򣬼ɽӦλ
ӦʱڼSDA
ͣʹʱĸߵƽڼȶĵ͵ƽͼ9
Ȼǽͱʱ
ϸı6 ӻʱ
ӦλɴӻӴӻʱӦλ
I2C߱׼ ӦλΪ0ʾӦ ACK
ΪA Ϊ1ʾӦ NACK
ΪNALSB֮ӦͷSDAߣSDA
ԵȴӦλ
ڽһֽڵݣ
߲ٽոʱӦӦ
ֽ֪ͨ˷Ӧ״̬
Ӧֹ͡
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)(void);
void (*pf_close)(void);
------------------------------------------------*/
///<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
void L0_siic1_SDA_out(vType v)
{
if(v)
{
L0_SDA1_OUT();
}else
{
L0_SDA1_IN();
}
}
void L0_siic1_SDA(vType v)
{
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(void)
{
ts_siic1.pf_SDA_out = L0_siic1_SDA_out;
ts_siic1.pf_SDA_set = L0_siic1_SDA;
ts_siic1.pf_SDA_get = L0_siic1_SDA_get;
ts_siic1.pf_SCL_out = L0_siic1_SCL_out;
ts_siic1.pf_SCL_set = L0_siic1_SCL;
ts_siic1.pf_close = L0_siic1_close;
ts_siic1.sal = D_iic1_addr;
}