EasyManua.ls Logo

Omron D6T Series - Temperature Data Retrieval Example; Sample Data and Code for 16;1024 ch; Code Adjustments for 1-Channel Models

Omron D6T Series
24 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
D6T MEMS Thermal Sensors User’s Manual (A284) 14
6.4 Example Temperature Value Retrieval Program
(16-channel D6T-44L-06 / 1024ch D6T-32L-01A)
// I2C communication functions
extern void I2C_start();
extern void I2C_repeatstart();
extern void I2C_stop();
extern void I2C_send1( char addr8 , char cmd );
extern void I2C_getx( char addr8 , char buff[] , int length );
extern int D6T_checkPEC( char buf , int pPEC );
// Global var.
extern char readbuff[35];
extern int tPTAT;
extern int tP[16];
extern int tPEC;
int D6T_getvalue()
{
I2C_start();
I2C_send1( 0x14 , 0x4C ); // 14h = { 0Ah(Addr7) : Write(0b) }
I2C_repeatstart();
I2C_getx( 0x15 , readbuff , 35 ); // 15h = { 0Ah(Addr7):Read },35 = 2*(1+16)+1
I2C_stop();
If(!D6T_checkPEC(readbuff,34)){
return - 1; // error
}
tPTAT = 256*readbuff[1] + readbuff[0];
tP[0] = 256*readbuff[3] + readbuff[2];
tP[1] = 256*readbuff[5] + readbuff[4];
tP[2] = 256*readbuff[7] + readbuff[6];
tP[3] = 256*readbuff[9] + readbuff[8];
tP[4] = 256*readbuff[11] + readbuff[10];
tP[5] = 256*readbuff[13] + readbuff[12];
tP[6] = 256*readbuff[15] + readbuff[14];
tP[7] = 256*readbuff[17] + readbuff[16];
tP[8] = 256*readbuff[19] + readbuff[18];
tP[9] = 256*readbuff[21] + readbuff[20];
tP[10] = 256*readbuff[23] + readbuff[22];
tP[11] = 256*readbuff[25] + readbuff[24];
tP[12] = 256*readbuff[27] + readbuff[26];
tP[13] = 256*readbuff[29] + readbuff[28];
tP[14] = 256*readbuff[31] + readbuff[30];
tP[15] = 256*readbuff[33] + readbuff[32];
tPEC = readbuff[34];
return 1;
}
measure()
{
n = 0;
do{
status = D6T_getvalue();
n++;
}while(status < 0 && n < LOOPLIMIT);
If(status < 0){
// error operation.
}
printf(“%d, %d,%d,%d,%d,%d,%d,%d,%d ,%d,%d,%d,%d,%d,%d,%d,%d ,%d\n”,
tPTAT,tP[0],tP[1],tP[2],tP[3],tP[4],tP[5],tP[6],tP[7]
,tP[8],tP[9],tP[10],tP[11],tP[12],tP[13],tP[14],tP[15],tPEC);
}
* For the D6T-32L-01A, add tP[xx] up to 1023.
* This example program is configured only with functions from the standard I2C operations library.
Replace library functions with similar ones available in the microcontroller used in your system
when testing this program.

Related product manuals