这个初始化程序有错吗?
WORD I2CInit( DWORD I2cMode )
{
PCONP |= (1 << 7);
PINSEL1 &= ~0x03C00000;
PINSEL1 |= 0x01400000; // set PIO0.27 and PIO0.28 to I2C0 SDA and SCK //
// function to 01 on both SDA and SCK. //
//--- Reset registers ---//
I20SCLL = I2SCLL_SCLL;
I20SCLH = I2SCLH_SCLH;
//--- Clear flags ---//
I20CONCLR = I2CONCLR_AAC | I2CONCLR_SIC | I2CONCLR_STAC | I2CONCLR_I2ENC;
if ( I2cMode == I2CSLAVE )
{
I20ADR = PCF8594_ADDR;
}
if ( install_irq( I2C0_INT, (void *)I2C0SlaveHandler, 0 ) == FALSE )
{
return( FALSE );
}
__nop(); __nop(); __nop();
I20CONSET = I2CONSET_I2EN | I2CONSET_AA;
return( TRUE );
}
|