display on a very good way

This commit is contained in:
hg 2015-03-03 21:49:53 +01:00
parent 20aa1ef3fa
commit 7f7df544e2
2 changed files with 26 additions and 25 deletions

View File

@ -17,7 +17,7 @@ void dispInit() {
spiXfer16(0x09ff); // decode mode
spiXfer16(0x0a01); // intensity
spiXfer16(0x0b03); // scan limit
spiXfer16(0x0b07); // scan limit
spiXfer16(0x0c01); // normal op
@ -46,7 +46,7 @@ void dispSetError() {
spiXfer16(0x040b);
}
#define MAX_DIGIT 4
#define MAX_DIGIT 8
void dispSetDigit(uint8_t digit, uint8_t value) {
if ((digit > MAX_DIGIT) || (digit == 0) || (value > 9)) {
@ -119,40 +119,40 @@ void dispSet(uint8_t unit, int16_t value) {
uint8_t neg = (value < 0) ? 1 : 0;
// value = abs(value);
uint8_t digit0 = value / 1000;
uint16_t remVal = value - (digit0 * 1000);
uint8_t digit1 = remVal / 100;
remVal = remVal - (digit1 * 100);
uint8_t digit2 = remVal / 10;
remVal = remVal - (digit2 * 10);
uint8_t digit3 = remVal;
uint8_t digit3 = value / 1000;
uint16_t remVal = value - (digit3 * 1000);
uint8_t digit2 = remVal / 100;
remVal = remVal - (digit2 * 100);
uint8_t digit1 = remVal / 10;
remVal = remVal - (digit1 * 10);
uint8_t digit0 = remVal;
if (digit0 == 0) {
if (digit3 == 0) {
if (neg) {
digit0 = 0x0a;
digit3 = 0x0a;
} else {
digit0 = 0x0f;
digit3 = 0x0f;
}
}
if (digit0 > 0x09 && digit1 == 0) {
if (neg) {
digit1 = 0x0a;
digit0 = 0x0f;
} else {
digit1 = 0x0f;
}
}
if (digit0 > 0x09 && digit1 > 0x09 && digit2 == 0) {
if (digit3 > 0x09 && digit2 == 0) {
if (neg) {
digit2 = 0x0a;
digit1 = 0x0f;
digit3 = 0x0f;
} else {
digit2 = 0x0f;
}
}
if (digit3 > 0x09 && digit2 > 0x09 && digit1 == 0) {
if (neg) {
digit1 = 0x0a;
digit2 = 0x0f;
} else {
digit1 = 0x0f;
}
}
if (unit == 0) {
spiXfer16(0x0100 | digit0);
spiXfer16(0x0200 | digit1);

View File

@ -35,7 +35,8 @@ int main() {
spiInit();
dispInit();
dispSet(0, 12);
dispSet(1, 437);
__enable_interrupt();
@ -47,7 +48,7 @@ int main() {
if (c > 1000000) {
c = 0;
d++;
dispSet(0, d);
// dispSetDigit(0, 1);
}
}
}