+ version 0.1.01

+ optimized _read() function for speed
  based upon numbers from datasheet
+ some refactoring
+ added demo2 - delta-read
+ added demo3 - measure timing
This commit is contained in:
Rob Tillaart 2014-01-02 22:24:55 +01:00
parent d59d553eb2
commit 2c2316f817
4 changed files with 120 additions and 26 deletions

View File

@ -1,7 +1,7 @@
//
// FILE: MAX31855.cpp
// AUTHOR: Rob Tillaart
// VERSION: 0.1.00
// VERSION: 0.1.01
// PURPOSE: MAX31855 - Thermocouple
// DATE: 2014-01-01
// URL:
@ -57,26 +57,18 @@ uint8_t MAX31855::read()
return _status;
}
uint32_t MAX31855::_read(void)
{
uint32_t value = 0;
digitalWrite(_sclk, LOW);
delayMicroseconds(1000);
digitalWrite(_cs, LOW);
delayMicroseconds(1000);
for (int8_t i=31; i>=0; i--)
for (int8_t i = 31; i >= 0; i--)
{
digitalWrite(_sclk, LOW);
delayMicroseconds(1000);
value <<= 1;
if (digitalRead(_miso) == HIGH) value += 1;
digitalWrite(_sclk, LOW);
if ( digitalRead(_miso) ) value += 1;
digitalWrite(_sclk, HIGH);
delayMicroseconds(1000);
}
digitalWrite(_cs, HIGH);

View File

@ -3,7 +3,7 @@
//
// FILE: MAX31855.h
// AUTHOR: Rob Tillaart
// VERSION: 0.1.00
// VERSION: 0.1.01
// PURPOSE: MAX31855 - Thermocouple
// DATE: 2014-01-01
// URL:
@ -17,7 +17,7 @@
#include "Arduino.h"
#endif
#define MAX31855_VERSION "0.1.00"
#define MAX31855_VERSION "0.1.01"
#define STATUS_OK 0x00
#define STATUS_OPEN_CIRCUIT 0x01
@ -47,3 +47,5 @@ private:
};
#endif
// END OF FILE

View File

@ -0,0 +1,43 @@
//
// FILE: max31855_demo2.ino
// AUTHOR: Rob Tillaart
// VERSION: 0.1.01
// PURPOSE: thermocouple lib demo application
// DATE: 2014-01-02
// URL:
//
// Released to the public domain
//
#include "MAX31855.h"
const int doPin = 7;
const int csPin = 6;
const int clPin = 5;
MAX31855 tc(clPin, csPin, doPin);
void setup()
{
Serial.begin(115200);
Serial.print("Start max31855_demo: ");
Serial.println(MAX31855_VERSION);
Serial.println();
tc.begin();
tc.read();
}
void loop()
{
float t1 = tc.getTemperature();
delay(1000);
tc.read();
float t2 = tc.getTemperature();
Serial.print("delta:\t");
Serial.println(t2-t1, 2);
delay(1000);
}

View File

@ -0,0 +1,57 @@
//
// FILE: max31855_demo2.ino
// AUTHOR: Rob Tillaart
// VERSION: 0.1.01
// PURPOSE: thermocouple lib demo application
// DATE: 2014-01-02
// URL:
//
// Released to the public domain
//
#include "MAX31855.h"
const int doPin = 7;
const int csPin = 6;
const int clPin = 5;
MAX31855 tc(clPin, csPin, doPin);
void setup()
{
Serial.begin(115200);
Serial.print("Start max31855_demo: ");
Serial.println(MAX31855_VERSION);
Serial.println();
tc.begin();
uint32_t start = micros();
tc.read();
uint32_t stop = micros();
Serial.print("read:\t");
Serial.println(stop - start);
start = micros();
float t1 = tc.getTemperature();
stop = micros();
Serial.print("getTemperature:\t");
Serial.println(stop - start);
start = micros();
tc.getInternal();
stop = micros();
Serial.print("getInternal:\t");
Serial.println(stop - start);
Serial.println(t1,2);
}
void loop()
{
}