X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fdrivers%2Fao_seven_segment.c;h=1be305e57e16ac5955bedca84ad634edeb731f4d;hb=41fed74c4cf139de6bf8f1879d370977785ad1f8;hp=961fbb8400e95dab27624b2295075f6a5c6b481e;hpb=38d4110e59a44687d8a4743b8cd04cbf2761c9d8;p=fw%2Faltos diff --git a/src/drivers/ao_seven_segment.c b/src/drivers/ao_seven_segment.c index 961fbb84..1be305e5 100644 --- a/src/drivers/ao_seven_segment.c +++ b/src/drivers/ao_seven_segment.c @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -168,10 +169,20 @@ static const uint8_t ao_segments[] = { (0 << 6), /* F */ }; + void -ao_seven_segment_set(uint8_t digit, uint8_t value) +ao_seven_segment_direct(uint8_t digit, uint8_t segments) { uint8_t s; + + 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) @@ -183,10 +194,7 @@ ao_seven_segment_set(uint8_t digit, uint8_t value) 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); } void @@ -201,10 +209,8 @@ static void ao_seven_segment_show(void) { uint8_t digit, value; - ao_cmd_decimal(); - digit = ao_cmd_lex_i; - ao_cmd_decimal(); - value = ao_cmd_lex_i; + digit = ao_cmd_decimal(); + value = ao_cmd_decimal(); ao_seven_segment_set(digit, value); }