This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problem in LPC2368 I2C START Condition

hii, I am Working on LPC2368 I2C ,I am facing problem in Start Condition i.e,after setting Start Condition bit ,it is not switching to Interrupt Handler,I am first time writing code for I2c ,Is there any other thing to do in that.

Code :

int main (void)
{ DWORD i;

if ( I2CInit( (DWORD)I2CMASTER ) == FALSE ) /* initialize I2c */ { while ( 1 ); /* Fatal error */ }

I2Cstart();
}

DWORD I2CInit( DWORD I2cMode )
{ PCONP |= (1 << 19); PINSEL1 &= ~0x03C00000; PINSEL1 |= 0x01400000; /* set PIO0.27 and PIO0.28 to I2C0 SDA and SCK */ /* function to 01 on both SDA and SCK. */ /*--- Clear flags ---*/ I20CONCLR = I2CONCLR_AAC | I2CONCLR_SIC | I2CONCLR_STAC | I2CONCLR_I2ENC;

/*--- Reset registers ---*/ I20SCLL = I2SCLL_SCLL; I20SCLH = I2SCLH_SCLH;

/* Install interrupt handler */ if (install_irq( I2C0_INT, (void *)I2C0MasterHandler, HIGHEST_PRIORITY ) == FALSE ) { return( FALSE ); } I20CONSET = I2CONSET_I2EN; //I2C interface is enabled. return( TRUE );
}

DWORD I2CStart( void )
{ DWORD timeout = 0; DWORD retVal = FALSE;

/*--- Issue a start condition ---*/ I20CONSET = I2CONSET_STA; /* Set Start flag */

/*--- Wait until START transmitted ---*/ while( 1 ) { if ( I2CMasterState == I2C_STARTED ) { retVal = TRUE; break; } if ( timeout >= MAX_TIMEOUT ) { retVal = FALSE; break; } timeout++; } return( retVal );
}

0