X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=nixiedisp;a=blobdiff_plain;f=fw%2Fsrc%2Fmain.c;h=a5d7900410f73acf55b9595f11864c83778c79ca;hp=e658870b08a543b1b08294d38ed1c6aed803ae9b;hb=HEAD;hpb=3f5a1aa6a242e514afe7ee1556b12ac64f34428e diff --git a/fw/src/main.c b/fw/src/main.c index e658870..a5d7900 100644 --- a/fw/src/main.c +++ b/fw/src/main.c @@ -197,10 +197,32 @@ static void proc_cmd(char *input) static void update_display(void) { + show_number(number); } -static void show_number(uint32_t xnum) +static void set_digit(int idx, unsigned int d) { + int i; + unsigned int clkbit = 1 << idx; + + for(i=0; i<8; i++) { + PORTC = (PORTC & 0xfe) | (d >> 7); + PORTB = (PORTB & 0xf8) | clkbit; + PORTB &= 0xf8; + d <<= 1; + } +} + +static void show_number(uint32_t n) +{ + int i, d; + + for(i=0; i<6; i++) { + d = n % 10; + n /= 10; + + set_digit(i, d); + } } static void setclock(int hr, int min, int sec)