This exposes a simple bit-mask for setting the seven segments instead
of just allowing hex-decimal values.
Signed-off-by: Keith Packard <keithp@keithp.com>
-ao_seven_segment_set(uint8_t digit, uint8_t value)
+ao_seven_segment_direct(uint8_t digit, uint8_t segments)
+
+ for (s = 0; s <= 7; s++)
+ ao_lcd_set(digit, s, !!(segments & (1 << s)));
+ ao_lcd_flush();
+}
+
+void
+ao_seven_segment_set(uint8_t digit, uint8_t value)
+{
uint8_t segments;
if (value == AO_SEVEN_SEGMENT_CLEAR)
uint8_t segments;
if (value == AO_SEVEN_SEGMENT_CLEAR)
if (value & 0x10)
segments |= (1 << 7);
}
if (value & 0x10)
segments |= (1 << 7);
}
-
- for (s = 0; s <= 7; s++)
- ao_lcd_set(digit, s, !!(segments & (1 << s)));
- ao_lcd_flush();
+ ao_seven_segment_direct(digit, segments);
#define AO_SEVEN_SEGMENT_CLEAR 0xff
#define AO_SEVEN_SEGMENT_CLEAR 0xff
+void
+ao_seven_segment_direct(uint8_t digit, uint8_t segments);
+
void
ao_seven_segment_set(uint8_t digit, uint8_t value);
void
ao_seven_segment_set(uint8_t digit, uint8_t value);