display on a very good way
This commit is contained in:
parent
20aa1ef3fa
commit
7f7df544e2
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user