@@ -157,24 +157,27 @@ void update_temp() {
if(temp_pre & 0b0000000000000010) {
ssd1306_DrawString("Fatal Error", 3, 35);
state = STATE_TC_ERROR;
}
else if(temp_pre & 0b0000000000000001 && !ignore_tc_error) {
temp = 0;
temp_frac = 0;
else
{
if(state == STATE_TC_ERROR)
state = STATE_IDLE;
uint8_t sign = temp >> 15;// top bit is sign
temp_pre = temp_pre >> 2; // Drop 2 lowest bits
temp_frac = temp_pre & 0b11; // get fractional part
temp_frac *= 25; // each bit is .25 a degree, up to fixed point
temp_pre = temp_pre >> 2; // Drop 2 fractional bits
if(sign) {
temp = -temp_pre;
else {
temp = temp_pre;
@@ -428,25 +431,25 @@ void machine()
char tempstr[6];
itoa_fp(temp, temp_frac, tempstr);
ssd1306_DrawString("Temp: ", 3, 40);
ssd1306_DrawString(" ", 3, 72);
ssd1306_DrawString(tempstr, 3, 72);
ssd1306_drawlogo();
switch(goto_mode) {
case 2:
ssd1306_DrawString("-> brew ", 1, 40);
ssd1306_DrawString("-> heat ", 1, 40);
} break;
case 1:
ssd1306_DrawString("-> setup ", 1, 40);
case 0:
ssd1306_DrawString("-> reset ", 1, 40);
@@ -631,28 +634,28 @@ void machine()
// Event Handler
// N/A
case STATE_SETBOOTTOBREW:
// Write text to OLED
// [ therm :: set windup ]
// [ g = 12 ]
ssd1306_DrawString("Boot to Brew", 0, 40);
ssd1306_DrawString("Start on Boot", 0, 40);
ssd1306_DrawString("btb=", 1, 45);
ssd1306_DrawString("sob=", 1, 45);
if(boottobrew)
ssd1306_DrawString("Enabled ", 1, 70);
ssd1306_DrawString("Disabled", 1, 70);
ssd1306_DrawString("Press to accept", 3, 40);
// Button handler
if(SW_BTN_PRESSED) {
state = STATE_SETUNITS;
Status change: