LCD implementation of our project.
Dependencies: mbed mbed-rtos MLX90614
Thermometer.cpp
- Committer:
- ovidiup13
- Date:
- 2015-06-03
- Revision:
- 10:97389d774ae1
- Parent:
- 8:81ed1135ba02
File content as of revision 10:97389d774ae1:
#include "Thermometer.h" Thermometer::Thermometer(ST7565 *lcd, Item *back, DigitalOut *gyro, DigitalOut *thermo){ this->title = " Thermometer"; this->st7565 = lcd; this->back = back; this->gyro = gyro; this->thermo = thermo; tt = NULL; } void Thermometer::display(void){ if(tt != NULL) return; gyro->write(0); thermo->write(1); tt = new Thread(&Thermometer::tt_start, this); tt->signal_set(START_THREAD); } void Thermometer::tt_start(const void * args){ Thermometer *t = (Thermometer*)args; t->display_temperature(); } void Thermometer::display_temperature(){ tt->signal_wait(START_THREAD); float temp; char temp_char[50]; while(1){ temp = get_temperature(); //get temperature and display it sprintf(temp_char, "Temperature is: %0.2f", temp); st7565->drawstring(5, 3, temp_char); st7565->display(); Thread::wait(15); st7565->clear(); } } void Thermometer::update(char c){ if(c == 'y'){ tt->terminate(); free(tt); tt = NULL; thermo->write(0); st7565->clear(); this->setSelectedScreen(back); } }