/****************************************************************************************
 * KF8A系列单片机	KF8A100EON_DEMO	开发板演示程序
 * 标    题: IIC实验
 * 项目名: 07- ADC_Test
 * 开发环境：ChipON IDE
 * 版          本     ：V1.0 (2019/07/23)
 * 作 者: 上海芯旺微电子有限公司
 * 功能简述:	1.测试IIC Master功能，将从机数据读出并打印到串口上输出。
 * 			2.测试IIC Slave功能，将准备的数据输出到主机上做对比
 * 硬件说明： 使用两块A100EON开发板对接，SCL-SCL SDA-SDA并添加外不上拉电阻4.7K；
 * 跳线接法： 单片机供电选择为3.3V或5V
 ****************************************************************************************/
#include<KF8A100EON.h>
#include "include.h"

uchar TEST[128]={0};
uchar	Temp,DATA=0;
uchar	ADDR=0;
uchar 	S_Reversal=0;
uchar	i=0;
void Sys_Init(void)
{
	OSCCTL = 0x70;		//时钟配置为内部16M
	TR0=0;
	TR1=0;
	TR2=0;
	TR3=0;
	P0=0;
	P1=0;
	P2=0;
	P3=0;
}

//主函数
void main()
{

	Sys_Init();
	IIC_Init(MODE_Slave);
	//从机准备待发送的数据 0x7f~0xff
	for(i=0;i<128;i++)
	{
		TEST[i]=i+127;
	}
	i=0;
	AIE=1;			//开启中断
	PUIE=1;
	while(1)
	{

	}

}
//中断函数0:0X04入口地址
void int_fun0() __interrupt (0)
{
#if	IIC_MODE==MODE_Slave
	if(SSCIIF)
	{
		SSCIIF=0;
		if(SSCIRW==0)				//从模式接收数据
		{
			Temp=SSCIBUFR;
			if(SSCIDA)				//接收到的是数据
			{
				DATA=Temp;
				if (0x55 == DATA)
				{

				}
			}
			else					//接收到的是地址
			{
				ADDR=Temp;

			}
		}
		else						//从模式发送数据
		{
			SSCIBUFR=TEST[i];
			SSCICKP=1;
			if(S_Reversal)
			{
				S_Reversal = 0;
			}
			else
			{
				if(i==127)
				{
					i = 0;
					S_Reversal = 1;
				}
				else
				{
					i++;
				}
			}
		}
	}
#endif
}


//中断函数1:0x14入口地址
void int_fun1() __interrupt (1)
{

}
