From: Jonathan McDowell Date: Thu, 12 Jul 2018 12:27:53 +0000 (+0100) Subject: Switch state machine transitions to increment X-Git-Url: https://the.earth.li/gitweb/?a=commitdiff_plain;h=fb126acc7d712c6495a2039a451b06b49e0197b2;p=temper-clone.git Switch state machine transitions to increment Rather than explicitly setting the next state just increment the current state - makes it easier to add extra states. --- diff --git a/main.c b/main.c index ee6b1a1..de54471 100644 --- a/main.c +++ b/main.c @@ -418,31 +418,31 @@ int main(void) if (temp_state == 1) { if (w1_reset()) { - temp_state = 2; + temp_state++; } else { temp_state = 0; } } else if (temp_state == 2) { w1_write(0xCC); /* SKIP ROM */ - temp_state = 3; + temp_state++; } else if (temp_state == 3) { w1_write(0x44); /* Convert T */ - temp_state = 4; + temp_state++; } else if (temp_state == 4) { if (w1_read_bit()) - temp_state = 5; + temp_state++; } else if (temp_state == 5) { if (w1_reset()) { - temp_state = 6; + temp_state++; } else { temp_state = 0; } } else if (temp_state == 6) { w1_write(0xCC); /* SKIP ROM */ - temp_state = 7; + temp_state++; } else if (temp_state == 7) { w1_write(0xBE); /* Read Scratchpad */ - temp_state = 8; + temp_state++; } else if (temp_state > 7 && temp_state < 17) { buf[temp_state - 8] = w1_read_byte(); temp_state++;