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
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�� ��
|
||
|
������ΪNA������������LSB֮����Ӧ���ͷ�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;
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|