#include "PCA9536.h"
#include "delay.h"

//////////////////////////////////////////////////////////////////////////////////
// 			9536 IIC To IO
// 			2202/12/X GHz_ljw
// 			2203/3/X GHz_ljw
//////////////////////////////////////////////////////////////////////////////////
void PCA9536_LedCtrl(u8 enable)
{
    u8 WRITE = PCA9536_WRITE;
    u8 OUTPORT = PCA9536_Output_Reg;
    IIC_Start();
    //IIC_Wait_Ack();
    //配置
    IIC_Send_Byte(WRITE);
    if (IIC_Wait_Ack() != 0)
		{
			goto cmd_fail;	
		}
    IIC_Send_Byte(OUTPORT);
    if (IIC_Wait_Ack() != 0)
		{
			goto cmd_fail;	
		}
    IIC_Send_Byte(( enable & 1 ) + 2);
    if (IIC_Wait_Ack() != 0)
		{
			goto cmd_fail;	
		}
		cmd_fail:
    IIC_Stop();//产生一个停止条件
}

//初始化IIC接口
void PCA9536_Init(void)
{
    u8 WRITE = PCA9536_WRITE;
    u8 CONFIG = PCA9536_Config_Reg;
    //u8 OUTPORT = Output_Reg;
    IIC_Start();
    //IIC_Wait_Ack();
    //配置
    IIC_Send_Byte(WRITE);
    if (IIC_Wait_Ack() != 0)
		{
			goto cmd_fail;	
		}
    IIC_Send_Byte(CONFIG);
    if (IIC_Wait_Ack() != 0)
		{
			goto cmd_fail;	
		}
    IIC_Send_Byte(0);
    //IIC_Send_Byte(0);
    if (IIC_Wait_Ack() != 0)
		{
			goto cmd_fail;	
		}
		cmd_fail:
    IIC_Stop();//产生一个停止条件

//		IIC_Start();
//    //IIC_Wait_Ack();
//    //配置
//    IIC_Send_Byte(WRITE);
//    IIC_Wait_Ack();
//    IIC_Send_Byte(OUTPORT);
//    IIC_Wait_Ack();
//    IIC_Send_Byte(2);
//    IIC_Wait_Ack();
//    IIC_Stop();//产生一个停止条件
}

//返回值  :读到的数据
//u8 PCA9536_ReadOneBtn(void)
//{
//	  u8 READ = PCA9536_READ;
//	  u8 WRITE = PCA9536_WRITE;
//	  u8 ReadAddr =  Input_Reg;
//    u8 temp=0;
//    IIC_Start();
//	  IIC_Send_Byte(WRITE);
//    temp=IIC_Wait_Ack();
//    IIC_Send_Byte(ReadAddr%256);   //发送低地址
//    temp=IIC_Wait_Ack();
//    IIC_Start();
//    IIC_Send_Byte(READ);           //进入接收模式
//    temp=IIC_Wait_Ack();
//    temp = IIC_Read_Byte(0);
//    IIC_Stop();//产生一个停止条件
//    return (temp & 2)>>1;
//}







