Dependencies:   mbed

Committer:
tecnosys
Date:
Sat May 15 06:26:05 2010 +0000
Revision:
0:b49d36e03092
Child:
2:661ac326e3b3

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tecnosys 0:b49d36e03092 1
tecnosys 0:b49d36e03092 2 #include <mbed.h>
tecnosys 0:b49d36e03092 3 #include "max6675.h"
tecnosys 0:b49d36e03092 4
tecnosys 0:b49d36e03092 5 max6675::max6675(SPI& _spi, PinName _ncs) : spi(_spi), ncs(_ncs) {
tecnosys 0:b49d36e03092 6
tecnosys 0:b49d36e03092 7 }
tecnosys 0:b49d36e03092 8
tecnosys 0:b49d36e03092 9 float max6675::read_temp() {
tecnosys 0:b49d36e03092 10 short value = 0;
tecnosys 0:b49d36e03092 11 float temp = 0;
tecnosys 0:b49d36e03092 12
tecnosys 0:b49d36e03092 13 uint8_t highByte=0;
tecnosys 0:b49d36e03092 14 uint8_t lowByte=0;
tecnosys 0:b49d36e03092 15
tecnosys 0:b49d36e03092 16 select();
tecnosys 0:b49d36e03092 17 wait(.25); //This delay is needed else it does'nt seem to update the temp
tecnosys 0:b49d36e03092 18
tecnosys 0:b49d36e03092 19 highByte = spi.write(0);
tecnosys 0:b49d36e03092 20 lowByte = spi.write(0);
tecnosys 0:b49d36e03092 21 deselect();
tecnosys 0:b49d36e03092 22
tecnosys 0:b49d36e03092 23
tecnosys 0:b49d36e03092 24 if (lowByte & (1<<2)) {
tecnosys 0:b49d36e03092 25 printf("No Probe");
tecnosys 0:b49d36e03092 26 } else {
tecnosys 0:b49d36e03092 27 value = (highByte << 5 | lowByte>>3);
tecnosys 0:b49d36e03092 28 }
tecnosys 0:b49d36e03092 29
tecnosys 0:b49d36e03092 30 temp = (value*0.25); // Multiply the value by 0.25 to get temp in ˚C or
tecnosys 0:b49d36e03092 31 // * (9.0/5.0)) + 32.0; // Convert value to ˚F (ensure proper floats!)
tecnosys 0:b49d36e03092 32
tecnosys 0:b49d36e03092 33 return temp;
tecnosys 0:b49d36e03092 34 }
tecnosys 0:b49d36e03092 35
tecnosys 0:b49d36e03092 36 void max6675::select() {
tecnosys 0:b49d36e03092 37 ncs = 0;
tecnosys 0:b49d36e03092 38 }
tecnosys 0:b49d36e03092 39
tecnosys 0:b49d36e03092 40 void max6675::deselect() {
tecnosys 0:b49d36e03092 41 ncs = 1;
tecnosys 0:b49d36e03092 42 }