
27
D6F-PH MEMS Differential pressure Sensor User’s Manual (A288)
short Temp_meas(void)
{
short rd_temp;
unsigned long wait_time;
/* [D040] <= 06h */
char send2[] = {0x00, 0xD0, 0x40, 0x18, 0x06};
I2C_WR(SA_7, send2, 5);
/* wait time depend on resolution mode */
wait_time = 33; /* 33msec wait */
adc_wait(wait_time);
/* [D061/D062] => Read TMP_H/TMP_L value */
char send3[] = {0x00, 0xD0, 0x61, 0x2C, 0x07};
RD_FIFO = I2C_RD_16 (SA_7, send3, 5);
rd_temp = ((RD_FIFO -10214)*1000 / 3739); // convert to degree-C(x10)
return rd_temp;
}
/* Public Basic Functions ----------------------------------------------------------*/
/*=================================================*/
/* I2C Write command */
/* Usage : I2C1_WR() */
/* Argument : 7bit Slave Address(char) */
/*
/* Return value : 8bit Read result */
/*=================================================*/
int I2C_WR(unsigned char add, char *dbuf, unsigned char n) {
int i = 0;
I2C1_Start(); /* Start condition */
I2C1_MastrSel(add, 0); /* Slave Address */
while (n--) {
I2C1_senddata(dbuf[i]); /* Send Data */
i++;
}
I2C1_Stop(); /* Stop condition */
return 0;
}
/*=================================================*/
/* I2C Read command */
/* Usage : I2C_RD() */
/* Argument : char add (7bit Slave Address) */
/* char *dbuf (Write data) */
/* unsigned char n (Number of bytes)*/