/******************************************************************************
文 件 名:Simulated_IIC_Master.h
功能描述:IO端口模拟的IIC(I2C)主机函数库头文件
作    者:张暄
版    本:V1.0
日    期:2016.12.21
******************************************************************************/

#ifndef SIMULATED_IIC_2_MASTER_H__
#define SIMULATED_IIC_2_MASTER_H__

#include "r_typedefs.h"
#include "RTE_GPIO.h"

/******************************************************************************
1us延时校准
******************************************************************************/
#define SIMULATED_IIC_2_FREQ_CALIBRATION 40U

/******************************************************************************
确认信号
******************************************************************************/

#define SIMULATED_IIC_2_ACK         0U    // 肯定应答
#define SIMULATED_IIC_2_NAK         1U    // 否定应答
#define SIMULATED_IIC_2_INVALID_ACK 2U    // 无效的应答信号(应答信号还未收到)

/******************************************************************************
引脚定义
******************************************************************************/



#define SDB_LED_DRIVER  GPIO_OUT_PORT17_PIN0
#define SDB_LED_SDA     GPIO_OUT_PORT16_PIN11 
#define SDB_LED_SDA_IN  GPIO_IN_PORT16_PIN11
#define SDB_LED_SDA_DIR GPIO_DIR_PORT16_PIN11
#define SDB_LED_SCL_DIR GPIO_DIR_PORT16_PIN10
#define SDB_LED_SCL     GPIO_OUT_PORT16_PIN10
#define SDB_LED_SCL_IN  GPIO_IN_PORT16_PIN10

/******************************************************************************
函数声明
******************************************************************************/
void    Simulated_IIC_2_Init(void);
void    Simulated_IIC_2_Start(void);
void    Simulated_IIC_2_Stop(void);
void    Simulated_IIC_2_Transmit_Data(uint8_t Data);
uint8_t Simulated_IIC_2_Receive_Data(void);
void    Simulated_IIC_2_Transmit_ACK(uint8_t ACK);
uint8_t Simulated_IIC_2_Receive_ACK(void);
void    Simulated_IIC_2_Delay(void);

/*void Simulated_IIC_2_Slave_Service(void);*/

#endif