ADT7310 SPI Temperature Sensor

Dependencies:   mbed

Committer:
pillsburydoughboy
Date:
Thu Mar 04 04:57:26 2010 +0000
Revision:
0:9bc294b44806

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pillsburydoughboy 0:9bc294b44806 1 #include "mbed.h"
pillsburydoughboy 0:9bc294b44806 2
pillsburydoughboy 0:9bc294b44806 3 SPI spi(p11, p12, p13); // mosi, miso, sclk
pillsburydoughboy 0:9bc294b44806 4 DigitalOut temp_cs(p8); // chip select
pillsburydoughboy 0:9bc294b44806 5 DigitalOut led1(LED1); //debug led
pillsburydoughboy 0:9bc294b44806 6 Serial pc(USBTX, USBRX); // tx, rx
pillsburydoughboy 0:9bc294b44806 7
pillsburydoughboy 0:9bc294b44806 8 int main() {
pillsburydoughboy 0:9bc294b44806 9 float temp = 0;
pillsburydoughboy 0:9bc294b44806 10 temp_cs = 1;
pillsburydoughboy 0:9bc294b44806 11
pillsburydoughboy 0:9bc294b44806 12 temp_cs = 0;
pillsburydoughboy 0:9bc294b44806 13 spi.format(8,3); //falling edge, clock idle high
pillsburydoughboy 0:9bc294b44806 14 spi.frequency(5000000);
pillsburydoughboy 0:9bc294b44806 15 spi.write(0x08); //write to config register
pillsburydoughboy 0:9bc294b44806 16 spi.write(0x10); //contin conversion mode
pillsburydoughboy 0:9bc294b44806 17 temp_cs = 1;
pillsburydoughboy 0:9bc294b44806 18
pillsburydoughboy 0:9bc294b44806 19 temp_cs = 0;
pillsburydoughboy 0:9bc294b44806 20 spi.write(0x54); //contin read mode
pillsburydoughboy 0:9bc294b44806 21 temp_cs = 1;
pillsburydoughboy 0:9bc294b44806 22
pillsburydoughboy 0:9bc294b44806 23 spi.format(16,3);
pillsburydoughboy 0:9bc294b44806 24 while (1) {
pillsburydoughboy 0:9bc294b44806 25 led1 = 0;
pillsburydoughboy 0:9bc294b44806 26 temp_cs = 0;
pillsburydoughboy 0:9bc294b44806 27 temp = spi.write(0x0000); //write 16 dummy bits to read 16 bits
pillsburydoughboy 0:9bc294b44806 28 temp_cs = 1;
pillsburydoughboy 0:9bc294b44806 29 if (temp<0)
pillsburydoughboy 0:9bc294b44806 30 temp = (temp -32768)/128; //negative temp calculation
pillsburydoughboy 0:9bc294b44806 31 else
pillsburydoughboy 0:9bc294b44806 32 temp = temp/128;//div by 128 16bit positive temp
pillsburydoughboy 0:9bc294b44806 33 led1 = 1;
pillsburydoughboy 0:9bc294b44806 34 pc.printf("Temperature = %1.6f \r", temp);
pillsburydoughboy 0:9bc294b44806 35 wait(1);
pillsburydoughboy 0:9bc294b44806 36 }
pillsburydoughboy 0:9bc294b44806 37
pillsburydoughboy 0:9bc294b44806 38 }