Diff: max6675.cpp
- Revision:
- 0:b49d36e03092
- Child:
- 2:661ac326e3b3
diff -r 000000000000 -r b49d36e03092 max6675.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/max6675.cpp Sat May 15 06:26:05 2010 +0000
@@ -0,0 +1,42 @@
+
+#include <mbed.h>
+#include "max6675.h"
+
+max6675::max6675(SPI& _spi, PinName _ncs) : spi(_spi), ncs(_ncs) {
+
+}
+
+float max6675::read_temp() {
+ short value = 0;
+ float temp = 0;
+
+ uint8_t highByte=0;
+ uint8_t lowByte=0;
+
+ select();
+ wait(.25); //This delay is needed else it does'nt seem to update the temp
+
+ highByte = spi.write(0);
+ lowByte = spi.write(0);
+ deselect();
+
+
+ if (lowByte & (1<<2)) {
+ printf("No Probe");
+ } else {
+ value = (highByte << 5 | lowByte>>3);
+ }
+
+ temp = (value*0.25); // Multiply the value by 0.25 to get temp in ˚C or
+ // * (9.0/5.0)) + 32.0; // Convert value to ˚F (ensure proper floats!)
+
+return temp;
+}
+
+void max6675::select() {
+ ncs = 0;
+}
+
+void max6675::deselect() {
+ ncs = 1;
+}
MAX6675 Thermocouple