コード例 #1
0
int i2c_driver_enable(void)
{
   DEBUG_PRINTF("I2C Driver enable...", 0, 0);
   //I2cResult i2cErrorCode = I2C_RES_SUCCESS;
   int32          i2cResult;
   uint8          store_data[10]= {1,2,3,4,5,4,3,2,1,0};
   uint8          rd_data[10]={0xA5,0x5A,0xA5,0x5A,0xA5, 0x5A,0xA5,0x5A,0xA5,0x5A};
   uint8          wr_data[10] = {1,2,3,4,5,6,7,8,9,10};
   //int32          ind;
   int32           rc;
   int i;
   int success = 1;


    i2c_bus.clntCfg.uSlaveAddr = 0x50;
    i2c_bus.clntCfg.uBusFreqKhz = 400;
    i2c_bus.clntCfg.uByteTransferTimeoutUs = 2500;


   i2cResult = I2cDrv_Open(I2CDRV_I2C_11, &i2c_bus, 0);
   //i2cResult = I2CDEV_Init(DALDEVICEID_I2C_DEVICE_11, &hI2C);
   if (I2C_RES_SUCCESS != i2cResult)
   {
      DEBUG_PRINTF("I2C Driver opened failed", 0, 0);
      return -1;     
   }

   rc = I2cDrv_Cmd(&i2c_bus, I2cDrvCmd_Vote_PnocOn, (void*) 150000);
   DEBUG_PRINTF("I2cDrv_Cmd PnocOn rc=%d", rc, 0);
   rc = I2cDrv_Cmd(&i2c_bus, I2cDrvCmd_Vote_I2cClocsOn, NULL);
   DEBUG_PRINTF("I2cDrv_Cmd ClocsOn rc=%d", rc, 0);
   

   // store the data
   rc = i2c_read_eeprom(&i2c_bus, 0x32,store_data, 10);
   DEBUG_PRINTF("i2c_read_eeprom: 0x%x", rc, 0);


     for (i = 0; i < 10; i++)
     {
        DEBUG_PRINTF("Store_data:%d", store_data[i], 0)
     }
   DEBUG_PRINTF("I2C Driver enable...complete? %d", success, 0);
   if (!success) {

     for (i = 0; i < 10; i++)
     {
        DEBUG_PRINTF("Read:%d, Write:%d", rd_data[i], wr_data[i])
     }
	 return -1;
   }
   // restore previous content
   // i2c_write_eeprom(&i2c_bus, 0x3000,store_data, 10);
   return 0;
}
コード例 #2
0
ファイル: lm75.c プロジェクト: MotionReality/picpack
uns8 lm75_get_config(uns8 addr)
{
	return i2c_read_eeprom(0x90 + addr, 0x01);
}