Kansai Electric Power usage meter (Denki-yohou) for GainSpan Wi-Fi http://mbed.org/users/okini3939/notebook/denki-yohou/
Dependencies: mbed GSwifi (old)
Diff: 7seg.cpp
- Revision:
- 1:beff52210994
- Parent:
- 0:d8a2cab7091c
- Child:
- 2:8646918ffff2
--- a/7seg.cpp Tue Jul 10 05:28:10 2012 +0000 +++ b/7seg.cpp Wed Sep 05 00:51:19 2012 +0000 @@ -12,14 +12,16 @@ static int n = 0; int i, bit; + // led off for (i = 0; i < 8; i ++) { led_k[i] = 1; } - led_a[n] = 1; + led_a[n] = 1; // common off n ++; if (n >= 4) n = 0; + // led on if (ledbuf[n] >= 0) { bit = 1; for (i = 0; i < 7; i ++) { @@ -28,26 +30,26 @@ } led_k[7] = ledbuf[n] & 0x80 ? 0 : 1; } - led_a[n] = 0; + led_a[n] = 0; // common on } -void writeled (int num, int dot, int place) { - if (num >= 1000 && place & 0x08) { - ledbuf[0] = num / 1000; +void writeled (int num, int dot, int mask, int zero) { + if (((num >= 1000) || (zero & 0x08)) && (mask & 0x08)) { + ledbuf[0] = num / 1000 % 10; } else { ledbuf[0] = -1; } - if (num >= 100 && place & 0x04) { + if (((num >= 100) || (zero & 0x04)) && (mask & 0x04)) { ledbuf[1] = (num / 100) % 10; } else { ledbuf[1] = -1; } - if (num >= 10 && place & 0x02) { + if (((num >= 10) || (zero & 0x02)) && (mask & 0x02)) { ledbuf[2] = (num / 10) % 10; } else { ledbuf[2] = -1; } - if (place & 0x01) { + if (mask & 0x01) { ledbuf[3] = num % 10; } else { ledbuf[3] = -1;