Example #1
0
unsigned char readAdc1(void){
	unsigned char readValue = 0;

	I2C_START_WAIT(LightSensorAddress+I2C_WRITE_FLAG);
	I2C_WRITE(0x83);

        I2C_REP_START(LightSensorAddress+I2C_READ_FLAG);
	readValue = I2C_READ_ACK(); 

return readValue;
}
Example #2
0
int getTemperature(void){
	int temperature=0;
	unsigned char temp;

	WakeUpMode();

	/* Wait data temperature available */
	do {
	I2C_START_WAIT(TemperatureSensorAddress+I2C_WRITE_FLAG);  

	I2C_WRITE(0x04);			// CONTROLS/STATUS REGISTER 
	I2C_REP_START(TemperatureSensorAddress+I2C_READ_FLAG); 	// Send a responce request
	temp = I2C_READ_NACK();			// Read the response

	I2C_STOP();
	}
	while(!(temp & 0x01));			// While Data Available Flag is not set

	/* Read the TEMPERATURE DATA REGISTER */
	I2C_START_WAIT(TemperatureSensorAddress+I2C_WRITE_FLAG);  

	I2C_WRITE(0x00);                        // Write the temperature data register 0x00
	I2C_REP_START(TemperatureSensorAddress+I2C_READ_FLAG);       // Send a responce request
	temperature = I2C_READ_NACK()<<8;            // Read the response
	
	I2C_WRITE(0x10);                        // Write the temperature hight byte data register 0x00
	I2C_REP_START(TemperatureSensorAddress+I2C_READ_FLAG);       // Send a responce request
	temperature = I2C_READ_NACK()<<8;            // Read the response
	
	I2C_WRITE(0x11);                        // Write the temperature low byte data register 0x00
	I2C_REP_START(TemperatureSensorAddress+I2C_READ_FLAG);       // Send a responce request
	temperature |= I2C_READ_NACK();            // Read the response

	I2C_STOP();

	/* Go to sleep mode */
	sleepMode();

return temperature/128;
}
Example #3
0
// odczyt danych z pamiêci EEPROM
void EI2C_read_buf(u08 device, u16 subAddr, u16 len, u08 *buf) {

	while (len--) {
		I2C_START();
		i2cPutbyte(device | ((subAddr>>8)<<1) );
		i2cPutbyte(subAddr);
		I2C_REP_START();
		i2cPutbyte(device + 1);
		*buf++ = i2cGetbyte( NACK );
		I2C_STOP();
		subAddr++;
	}


}
Example #4
0
unsigned char WakeUpModeLight(void){
	unsigned char ret = -1;
	unsigned char count = 0;

	do {
	ret = I2C_START(LightSensorAddress+I2C_WRITE_FLAG); 

        if(ret == 0){

        I2C_WRITE(0x03); 

        I2C_REP_START(LightSensorAddress+I2C_READ_FLAG);
	ret = I2C_READ_ACK();
        }

        if(count++ > 10) 
            return 1;

	} while(ret != 0x03);			// While Response of command WakeUp is not 0x03

return 0;
}