Hello world for MAX31855 thermocouple
Dependencies: 4DGL-uLCD-SE MAX31855 mbed-rtos mbed
Fork of Thermo_MAX31855 by
Diff: main.cpp
- Revision:
- 0:1f8e362f558b
- Child:
- 1:04f483a4edc0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Oct 21 14:15:32 2014 +0000 @@ -0,0 +1,74 @@ +#include "mbed.h" +#include "uLCD_4DGL.h" +#include "rtos.h" +#include "stdio.h" +#include "max31855.h" + +uLCD_4DGL uLCD(p9,p10,p11); // serial tx, serial rx, reset pin; +SPI thermoSPI(p5,p6,p7); // setup SPI interface +max31855 max1(thermoSPI, p20); //setup max31855 interface +Mutex lcd_mutex; // mutex to make the lcd lib thread safe +Semaphore four_slots(1); //Activate semaphore + + +// Thread t1 +// print the elapsed time on line 1 of the uLCD (i.e., HH:MM:SS) +void elapsedtime(void const *args) { //line 2 + int s = 00; + int m = 00; + int h = 00; + + while(true){ + s++; + if(s>59){ + s=00; + m++; + } + if(m>59){ + m=00; + h++; + } + four_slots.wait(); + //lcd_mutex.lock(); + uLCD.color(0xFFFF00); + uLCD.locate(0,1); //col,row + wait(0.1); + uLCD.printf("ET: %2d:%2d:%2d", h,m,s); + //lcd_mutex.unlock(); + four_slots.release(); + Thread::wait(250); // update once per secon + } +} + + +// Thread t2 +// print the temperature from the thermocouple - MAX31855 device +void thermoread(void const *args) { //line 2 + + float ftemperature = 0; // float variable for temperature + while(true){ + if (max1.ready()==1){ + ftemperature = max1.read_temp(); //Get the reading + + four_slots.wait(); + uLCD.color(0xFFFF00); + uLCD.locate(0,3); //col,row + wait(0.1); + uLCD.printf("Temp. is: %f", ftemperature); + four_slots.release(); + + } + } +} + + +int main() { + max1.initialise(); //initialize thermocouple IC + uLCD.baudrate(3000000); //set LCD baudrate + Thread t1(elapsedtime); //run elapsed time counter + Thread t2(thermoread); //read and display temperature from thermocouple + + while(1){ //While so program doesn't end + + } +}