netudenntui

Dependencies:   mbed SDFileSystem

Committer:
mitinori
Date:
Wed Nov 27 08:39:48 2019 +0000
Revision:
0:184cd74fc1d8
netudenntui

Who changed what in which revision?

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