📄 fx2_to_extsyncfifo.c
字号:
----------------------------------------------------*/
void Set_IIC_Ch1(unsigned char Addr,unsigned char R);
//unsigned char Read_IIC(unsigned char Addr);
void IIC_Init_Ch1(void);
void IIC_Start_Ch1(void);
void IIC_Stop_Ch1(void);
void IIC_Ack_Slave_Ch1(void);
//void IIC_Ack_Master(void);
void IIC_Write_Ch1( unsigned char d );
//void Set_IIC_DR0_Ch1(unsigned char Addr,unsigned char R);
void Set_IIC_Ch2(unsigned char Addr,unsigned char R);
//unsigned char Read_IIC(unsigned char Addr);
void IIC_Init_Ch2(void);
void IIC_Start_Ch2(void);
void IIC_Stop_Ch2(void);
void IIC_Ack_Slave_Ch2(void);
//void IIC_Ack_Master(void);
void IIC_Write_Ch2( unsigned char d );
void Set_IIC_Ch1(unsigned char Addr,unsigned char R)
{
unsigned char a,Reg;
a=Addr|0x50;
Reg=R&0x3F;
IIC_Start_Ch1();
IIC_Write_Ch1( a);
IIC_Ack_Slave_Ch1();
IIC_Write_Ch1(0xA0);
IIC_Ack_Slave_Ch1();
IIC_Write_Ch1(Reg);
// IIC_Ack_Slave();
IIC_Stop_Ch1();
Delay_ms( 10 );
}
/*
void Set_IIC_DR0_Ch1(unsigned char Addr,unsigned char R)
{
unsigned char a,Reg;
a=Addr|0x50;
Reg=R&0x3F;
IIC_Start_Ch1();
IIC_Write_Ch1( a);
IIC_Ack_Slave_Ch1();
IIC_Write_Ch1(0xC4);
IIC_Ack_Slave_Ch1();
IIC_Write_Ch1(Reg);
// IIC_Ack_Slave();
IIC_Stop_Ch1();
Delay_ms( 100 );
}
unsigned char Read_IIC(unsigned char Addr) //Reg0:R1
{
unsigned char a;
unsigned char i,rdata;
a=Addr|0x50;
rdata=0;
IIC_Start();
IIC_Write_8bit( a);
IIC_Ack_Slave();
IIC_Write_8bit(0x90);
IIC_Ack_Slave();
for( i=0; i<8; i++ )
{
rdata<<=1;
SCL_Ch1=0; Delay_ms(1);
SCL_Ch1=1; Delay_ms(1);
rdata|=SDA_Ch1;
}
SCL_Ch1=0; Delay_ms(10);
IIC_Ack_Master();
IIC_Stop();
return rdata;
}
void IIC_Inc(unsigned char Addr,unsigned char n)
{
unsigned char a,i;
a=Addr|0x50;
IIC_Start();
IIC_Write_8bit( a);
IIC_Ack_Slave();
IIC_Write_8bit(0x20);
IIC_Ack_Slave();
SCL_Ch1=0;Delay_ms(1);
SDA_Ch1=1;Delay_ms(1);
for (i=0;i<n;i++)
{
SCL_Ch1=1;Delay_ms(10);
SCL_Ch1=0;Delay_ms(10);
}
IIC_Stop();
Delay_ms( 10 );
}
void IIC_Dec(unsigned char Addr,unsigned char n)
{
unsigned char a,i;
a=Addr|0x50;
IIC_Start();
IIC_Write_8bit( a);
IIC_Ack_Slave();
IIC_Write_8bit(0x20);
IIC_Ack_Slave();
SCL_Ch1=0;Delay_ms(1);
SDA_Ch1=0;Delay_ms(1);
for (i=0;i<n;i++)
{
SCL_Ch1=1;Delay_ms(10);
SCL_Ch1=0;Delay_ms(10);
}
IIC_Stop();
Delay_ms( 10 );
}
*/
void IIC_Init_Ch1(void)
{
// EIE|=0x01;
SCL_Ch1=1; _nop_();
SDA_Ch1=1; _nop_();
}
void IIC_Start_Ch1(void)
{
SCL_Ch1=1; Delay_ms(1);
SDA_Ch1=1; Delay_ms(1);
SDA_Ch1=0; Delay_ms(1);
SCL_Ch1=0; Delay_ms(1);
}
void IIC_Stop_Ch1(void)
{
SCL_Ch1=1; Delay_ms(1);
SDA_Ch1=0; Delay_ms(1);
SDA_Ch1=1; Delay_ms(1);
SCL_Ch1=0; Delay_ms(1);
}
void IIC_Ack_Slave_Ch1(void)
{
/* SDA_Ch1=0; Delay_ms(1);
SCL_Ch1=1; Delay_ms(1);
Delay_ms( 10 );
SCL_Ch1=0; Delay_ms(1);
*/
SCL_Ch1=0; LED_Wk=1;
while(SDA_Ch1!=0)
{
_nop_();
}
LED_Wk=1;
//Delay_ms(1);
_nop_();_nop_();
//Delay_ms(1);
SCL_Ch1=1;Delay_ms(1);
}
/*
void IIC_Ack_Master(void)
{
SDA_Ch1=1; Delay_ms(1);
SCL_Ch1=1; Delay_ms(1);
Delay_ms( 10 );
SCL_Ch1=0; Delay_ms(1);
}
*/
void IIC_Write_Ch1( unsigned char d )
{
char i;
SCL_Ch1=0; Delay_ms(1);
for( i=0; i<8; i++ )
{
SDA_Ch1=(bit)(d&0x80); Delay_ms(1);
d <<= 1;
SCL_Ch1=1; Delay_ms(1);
SCL_Ch1=0; Delay_ms(1);
}
}
void Delay_ms( unsigned int n )//50us
{
unsigned int i;
for( i=0; i<20*n; i++ )
{
_nop_();
}
}
/*
void IIC_Write_6bit( unsigned char d )
{
char i;
d&=0x3F;
d <<= 2;
SCL_Ch1=0; Delay_ms(1);
for( i=0; i<6; i++ )
{
SDA_Ch1=(bit)(d&0x80); Delay_ms(1);
d <<= 1;
SCL_Ch1=1; Delay_ms(1);
SCL_Ch1=0; Delay_ms(1);
}
}
*/
void Set_IIC_Ch2(unsigned char Addr,unsigned char R)
{
unsigned char a,Reg;
a=Addr|0x50;
Reg=R&0x3F;
IIC_Start_Ch2();
IIC_Write_Ch2( a);
IIC_Ack_Slave_Ch2();
IIC_Write_Ch2(0xA0);
IIC_Ack_Slave_Ch2();
IIC_Write_Ch2(Reg);
// IIC_Ack_Slave();
IIC_Stop_Ch2();
Delay_ms( 10 );
}
void Set_IIC(char addr,char cmmd,char data)
{
IIC_Init();
IIC_Star();
IIC_Write( addr);
IIC_Slave_Ack();
IIC_Write( cmmd);
IIC_Slave_Ack();
IIC_Write( data);
IIC_Slave_Ack();
IIC_Stop();
}
/*
void Set_IIC_DR0_Ch2(unsigned char Addr,unsigned char R)
{
unsigned char a,Reg;
a=Addr|0x50;
Reg=R&0x3F;
IIC_Start_Ch2();
IIC_Write_Ch2( a);
IIC_Ack_Slave_Ch2();
IIC_Write_Ch2(0xC4);
IIC_Ack_Slave_Ch2();
IIC_Write_Ch2(Reg);
// IIC_Ack_Slave();
IIC_Stop_Ch2();
Delay_ms( 100 );
}
*/
void IIC_Init_Ch2(void)
{
// EIE|=0x01;
SCL_Ch2=1; _nop_();
SDA_Ch2=1; _nop_();
}
void IIC_Start_Ch2(void)
{
SCL_Ch2=1; Delay_ms(1);
SDA_Ch2=1; Delay_ms(1);
SDA_Ch2=0; Delay_ms(1);
SCL_Ch2=0; Delay_ms(1);
}
void IIC_Stop_Ch2(void)
{
SCL_Ch2=1; Delay_ms(1);
SDA_Ch2=0; Delay_ms(1);
SDA_Ch2=1; Delay_ms(1);
SCL_Ch2=0; Delay_ms(1);
}
void IIC_Ack_Slave_Ch2(void)
{
/* SDA_Ch2=0; Delay_ms(1);
SCL_Ch2=1; Delay_ms(1);
Delay_ms( 10 );
SCL_Ch2=0; Delay_ms(1);
*/
SCL_Ch2=0; LED_Wk=1;
while(SDA_Ch2!=0)
{
_nop_();
}
LED_Wk=1;
//Delay_ms(1);
_nop_();_nop_();
//Delay_ms(1);
SCL_Ch2=1;Delay_ms(1);
}
/*
void IIC_Ack_Master(void)
{
SDA_Ch2=1; Delay_ms(1);
SCL_Ch2=1; Delay_ms(1);
Delay_ms( 10 );
SCL_Ch2=0; Delay_ms(1);
}
*/
void IIC_Write_Ch2( unsigned char d )
{
char i;
SCL_Ch2=0; Delay_ms(1);
for( i=0; i<8; i++ )
{
SDA_Ch2=(bit)(d&0x80); Delay_ms(1);
d <<= 1;
SCL_Ch2=1; Delay_ms(1);
SCL_Ch2=0; Delay_ms(1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -