Files
@ 8efa67e4e6a3
Branch filter:
Location: therm/max31855.c - annotation
8efa67e4e6a3
2.6 KiB
text/plain
Comment out unused portion of font table
512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 512edacc3586 49485c1fefae | #include "stm32f0xx_hal.h"
#include "config.h"
#include "stringhelpers.h"
#include "states.h"
#include "gpio.h"
// Grab temperature reading from MAX31855
void max31855_readtemp(SPI_HandleTypeDef* hspi1, therm_settings_t* set, therm_status_t* status)
{
// Assert CS
HAL_GPIO_WritePin(MAX_CS, 0);
uint8_t rxdatah[1] = {0x00};
uint8_t rxdatal[1] = {0x00};
HAL_SPI_Receive(hspi1, rxdatah, 1, 100);
HAL_SPI_Receive(hspi1, rxdatal, 1, 100);
// Release CS
HAL_GPIO_WritePin(MAX_CS, 1);
// Assemble data array into one var
uint16_t temp_pre = rxdatal[0] | (rxdatah[0]<<8);
/*
if(temp_pre & 0b010) {
ssd1306_clearscreen();
HAL_Delay(400); // FIXME: remove?
status.tc_errno = 4;
status.state = STATE_TC_ERROR;
status.temp = 0;
status.temp_frac = 0;
} */
if(temp_pre & 0b001 && !set->ignore_tc_error) {
status->tc_errno = 1;
HAL_Delay(400); // FIXME: remove?
status->state_resume = status->state;
status->state = STATE_TC_ERROR;
status->temp = 0;
status->temp_frac = 0;
}/*
else if(temp_pre & 0b100 && !set.ignore_tc_error) {
status.tc_errno = 8;
HAL_Delay(400); // FIXME: remove?
status.state_resume = status.state;
status.state = STATE_TC_ERROR;
status.temp = 0;
status.temp_frac = 0;
}*/
else
{
//if(status.state == STATE_TC_ERROR)
//{
// status.state = status.state_resume;
// ssd1306_clearscreen();
//}
uint8_t sign = status->temp >> 15;// top bit is sign
temp_pre = temp_pre >> 2; // Drop 2 lowest bits
status->temp_frac = temp_pre & 0b11; // get fractional part
status->temp_frac *= 25; // each bit is .25 a degree, up to fixed point
temp_pre = temp_pre >> 2; // Drop 2 fractional bits
int8_t signint;
if(sign) {
signint = -1;
}
else {
signint = 1;
}
// Convert to Fahrenheit
if(set->temp_units == TEMP_UNITS_FAHRENHEIT)
{
status->temp = signint * ((temp_pre*100) + status->temp_frac);
status->temp = status->temp * 1.8;
status->temp += 3200;
status->temp_frac = status->temp % 100;
status->temp /= 100;
status->temp += set->temp_offset;
}
// Use Celsius values
else
{
status->temp = temp_pre * signint;
status->temp += set->temp_offset;
}
}
}
// vim:softtabstop=4 shiftwidth=4 expandtab
|