Ejemplo n.º 1
0
 void I2C1_INIT(S32 v_I2Cfreq_S32, U8 v_IntConfig_U8)
 {
    /*** Local variable ***/  
    S32 v_Fosc_S32 = 4E6;
    U8  v_I2CBRG_U8 = 39;

    // Get the Oscillator Frequency
    v_Fosc_S32 = GET_FreqOsc();
    // Calculate BaudRate
    v_I2CBRG_U8 =  ((F32)v_Fosc_S32/v_I2Cfreq_S32) - ((F32)v_Fosc_S32/10000000) - 1;

    // Configure Interrupts
    ConfigIntI2C1(v_IntConfig_U8);
    // Open I2C with specified BaudRate
    OpenI2C1(I2C_ON, v_I2CBRG_U8);
    
}
Ejemplo n.º 2
0
void InitDisplay()
{
	
	unsigned int config1 = I2C_ON | I2C_7BIT_ADD;
    //unsigned int config2 = 15;		// Works with no pll in use 
    unsigned int config2 = 24;
    
    delay(100); // THIS IS REQUIRED TO ALLOW THE VOLTAGE TO STABILIZE BEFORE INIT-ING THE DISPLAY

	ConfigIntI2C1(MI2C_INT_OFF);  //Disable I2C interrupt

	CloseI2C1();
	OpenI2C1( config1, config2);
	IdleI2C1();
	// Assert a start condition
	StartI2C1();
	while(_SEN);
	// Write the address of the slave 
	MasterWriteI2C1(Slave);
	while(I2C1STATbits.TBF);     //Wait till address is transmitted
   	while(!IFS1bits.MI2C1IF);    //Wait for ninth clock cycle

	MasterWriteI2C1(Comsend);
	IdleI2C1();
	MasterWriteI2C1(0x38);
	IdleI2C1();
	delay(10);
	MasterWriteI2C1(0x39);
	IdleI2C1();
	delay(10);
	MasterWriteI2C1(0x14);
	IdleI2C1();
	MasterWriteI2C1(0x25);
	IdleI2C1();
	MasterWriteI2C1(0x5E);
	IdleI2C1();
	MasterWriteI2C1(0x6D);
	IdleI2C1();
	MasterWriteI2C1(0x0C);
	IdleI2C1();
	MasterWriteI2C1(0x01);
	IdleI2C1();
	MasterWriteI2C1(0x06);
	IdleI2C1();
	delay(10);
	StopI2C1();
	IdleI2C1();
	CGRAM();			//define CGRAM
	
	StartI2C1();
	MasterWriteI2C1(Slave);
	IdleI2C1();
	MasterWriteI2C1(Comsend);
	IdleI2C1();
	MasterWriteI2C1(0x39);	
	IdleI2C1();	
	MasterWriteI2C1(0x01);		//go back Home
	IdleI2C1();
	StopI2C1();
	delay(10);
}