issue in display, digit calculation found
This commit is contained in:
@ -28,6 +28,8 @@ typedef enum {
|
|||||||
const tPin ALL_PATTERN[] = { SEG_A, SEG_B, SEG_C, SEG_D, SEG_E, SEG_F, SEG_G, PINS_END };
|
const tPin ALL_PATTERN[] = { SEG_A, SEG_B, SEG_C, SEG_D, SEG_E, SEG_F, SEG_G, PINS_END };
|
||||||
const tPin H_PATTERN[] = { SEG_B, SEG_C, SEG_E, SEG_F, SEG_G, PINS_END };
|
const tPin H_PATTERN[] = { SEG_B, SEG_C, SEG_E, SEG_F, SEG_G, PINS_END };
|
||||||
const tPin I_PATTERN[] = { SEG_B, SEG_C, PINS_END };
|
const tPin I_PATTERN[] = { SEG_B, SEG_C, PINS_END };
|
||||||
|
const tPin L_PATTERN[] = { SEG_D, SEG_E, SEG_F, PINS_END };
|
||||||
|
const tPin O_PATTERN[] = { SEG_A, SEG_B, SEG_C, SEG_D, SEG_E, SEG_F, PINS_END };
|
||||||
const tPin EMPTY_PATTERN[] = { PINS_END };
|
const tPin EMPTY_PATTERN[] = { PINS_END };
|
||||||
const tPin NUMBER0[] = { SEG_A, SEG_B, SEG_C, SEG_D, SEG_E, SEG_F, PINS_END };
|
const tPin NUMBER0[] = { SEG_A, SEG_B, SEG_C, SEG_D, SEG_E, SEG_F, PINS_END };
|
||||||
const tPin NUMBER1[] = { SEG_B, SEG_C, PINS_END };
|
const tPin NUMBER1[] = { SEG_B, SEG_C, PINS_END };
|
||||||
@ -64,11 +66,14 @@ void displayInit(void *handleArg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void showNumber(uint8_t n) {
|
static void showNumber(uint8_t n) {
|
||||||
const tPin *pattern = NUMBERS[10];
|
const tPin *pattern = NUMBERS[ALL_ID];
|
||||||
do {
|
do {
|
||||||
gpioSetPin(*pattern, LOW);
|
gpioSetPin(*pattern, LOW);
|
||||||
pattern++;
|
pattern++;
|
||||||
} while (*pattern != PINS_END);
|
} while (*pattern != PINS_END);
|
||||||
|
if (n < 0 || n > 9) {
|
||||||
|
volatile uint8_t error = 1;
|
||||||
|
}
|
||||||
pattern = NUMBERS[n];
|
pattern = NUMBERS[n];
|
||||||
do {
|
do {
|
||||||
gpioSetPin(*pattern, HIGH);
|
gpioSetPin(*pattern, HIGH);
|
||||||
@ -82,7 +87,7 @@ void displaySetValue(uint8_t v) {
|
|||||||
digitValues[0] = I_ID;
|
digitValues[0] = I_ID;
|
||||||
} else {
|
} else {
|
||||||
digitValues[1] = v / 10;
|
digitValues[1] = v / 10;
|
||||||
digitValues[0] = v - digitValues[1];
|
digitValues[0] = v - digitValues[1] * 10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,8 +23,12 @@ void gpioInitPins() {
|
|||||||
tPinCfg pin = pinCfg[p];
|
tPinCfg pin = pinCfg[p];
|
||||||
if (pin.portId == PORT1) {
|
if (pin.portId == PORT1) {
|
||||||
P1DIR |= pin.bit;
|
P1DIR |= pin.bit;
|
||||||
|
P1SEL &= ~pin.bit;
|
||||||
|
P1SEL2 &= ~pin.bit;
|
||||||
} else if (pin.portId == PORT2) {
|
} else if (pin.portId == PORT2) {
|
||||||
P2DIR |= pin.bit;
|
P2DIR |= pin.bit;
|
||||||
|
P2SEL &= ~pin.bit;
|
||||||
|
P2SEL2 &= ~pin.bit;
|
||||||
}
|
}
|
||||||
gpioSetPin(p, pin.defaultOut);
|
gpioSetPin(p, pin.defaultOut);
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ int main() {
|
|||||||
schAdd(displayExec, NULL, 0, 100);
|
schAdd(displayExec, NULL, 0, 100);
|
||||||
// schAdd(testTaskExec, &testTaskHandle1, 0, 20);
|
// schAdd(testTaskExec, &testTaskHandle1, 0, 20);
|
||||||
// schAdd(testTaskExec, &testTaskHandle2, 2, 20);
|
// schAdd(testTaskExec, &testTaskHandle2, 2, 20);
|
||||||
// schAdd(measureStartConversion, NULL, 0, 1000);
|
schAdd(measureStartConversion, NULL, 0, 1000);
|
||||||
|
|
||||||
__enable_interrupt();
|
__enable_interrupt();
|
||||||
|
|
||||||
|
@ -18,11 +18,15 @@ volatile uint32_t timestamp;
|
|||||||
ISR(TIMER0_A0, TA0_ISR) {
|
ISR(TIMER0_A0, TA0_ISR) {
|
||||||
timestamp++;
|
timestamp++;
|
||||||
schUpdate();
|
schUpdate();
|
||||||
|
|
||||||
|
P1OUT ^= BIT0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void timeInit() {
|
void timeInit() {
|
||||||
timestamp = 0;
|
timestamp = 0;
|
||||||
|
|
||||||
|
P1DIR |= BIT0;
|
||||||
|
|
||||||
TACCR0 = 32;
|
TACCR0 = 32;
|
||||||
TACCTL0 = CCIE;
|
TACCTL0 = CCIE;
|
||||||
TACTL = MC_1 | ID_0 | TASSEL_1 | TACLR;
|
TACTL = MC_1 | ID_0 | TASSEL_1 | TACLR;
|
||||||
|
Reference in New Issue
Block a user