/*********************************************************
*Copyright (C), 2024-2030
*文件名:	USER.h
*版  本:	Ver1.00
*日  期:	2024/08/15
*描  述:	main.c的函数配置
*备  注:	
**********************************************************/
#ifndef   __USER_H__
#define   __USER_H__
#include "common.h"
#include "Timer.h"

#define MODE_R	0x01	
#define MODE_W	0x00	
#define NACK		1	
#define ACK			0	
#define IIC_Delay()		Timer2_delay_us(6)

/* SDA、SCL引脚宏*/
#define IIC_SDA     P01    		// SDA引脚
#define IIC_SCL     P00    		// SCL引脚
#define IIC_SDA_F   P01F    	// SDA引脚
#define IIC_SCL_F   P00F    	// SCL引脚

#define IIC_SDA_UP      (IIC_SDA=1)   // SDA高电平
#define IIC_SDA_LOW     (IIC_SDA=0)   // SDA低电平
#define IIC_SCL_UP      (IIC_SCL=1)   // SCL高电平
#define IIC_SCL_LOW     (IIC_SCL=0)   // SCL低电平

#define SDA_OUT()   IIC_SDA_F = 0x22; IIC_SDA_F |= 0x80     	// SDA 设置为开漏输出，打开上拉电阻
#define SDA_IN()    IIC_SDA_F = 0X81    		// SDA 设置为输入

void IIC_stare(void);      		// 开始信号
void IIC_ack(void);        		// 应答信号
void IIC_No_ack(void);     		// 非应答信号
void IIC_stop(void);       		// 停止信号
U8 IIC_wait_ack(void);      	// 等待应答
void IIC_send(U8 dat);     		// 发送数据
U8 IIC_rece(void);         		// 接收数据
void IIC_init(void);					// 模拟IIC的IO初始化

U8 IIC_write_bytes(U8 dev_addr, U8 reg_addr, const U8* snedbuf, U16 num);
U8 IIC_read_bytes(U8 dev_addr, U8* recvbuf, U16 num);

#endif