LPM3 is not working correctly, device is booting, disabled, now it is working

This commit is contained in:
Wolfgang Hottgenroth
2016-09-12 07:59:34 +02:00
parent 4ce993230f
commit 75fee98f11
3 changed files with 14 additions and 19 deletions

View File

@ -57,13 +57,20 @@ uint8_t digitValues[] = { EMPTY_ID, EMPTY_ID, EMPTY_ID };
void displayInit(void *handleArg) { void displayInit(void *handleArg) {
for (tPin d = DIGIT_0; d <= DIGIT_2; d++) { for (tPin d = DIGIT_0; d <= DIGIT_2; d++) {
gpioSetPin(d, LOW); gpioSetPin(d, LOW);
for (tPin s = SEG_A; s <= SEG_G; s++) { for (tPin s = SEG_A; s <= SEG_F; s++) {
gpioSetPin(s, HIGH); gpioSetPin(s, HIGH);
ms_active_delay(INIT_CYCLE_DELAY); ms_active_delay(INIT_CYCLE_DELAY);
gpioSetPin(s, LOW); gpioSetPin(s, LOW);
} }
gpioSetPin(d, HIGH); gpioSetPin(d, HIGH);
} }
for (tPin d = DIGIT_2; d >= DIGIT_0; d--) {
gpioSetPin(d, LOW);
gpioSetPin(SEG_G, HIGH);
ms_active_delay(INIT_CYCLE_DELAY);
gpioSetPin(SEG_G, LOW);
gpioSetPin(d, HIGH);
}
} }
static void showNumber(uint8_t n) { static void showNumber(uint8_t n) {
@ -73,16 +80,6 @@ static void showNumber(uint8_t n) {
for (const tPin *pattern = NUMBERS[n]; *pattern != PINS_END; pattern++) { for (const tPin *pattern = NUMBERS[n]; *pattern != PINS_END; pattern++) {
gpioSetPin(*pattern, HIGH); gpioSetPin(*pattern, HIGH);
} }
// const tPin *pattern = NUMBERS[ALL_ID];
// do {
// gpioSetPin(*pattern, LOW);
// pattern++;
// } while (*pattern != PINS_END);
// pattern = NUMBERS[n];
// do {
// gpioSetPin(*pattern, HIGH);
// pattern++;
// } while (*pattern != PINS_END);
} }
void displaySetValue(uint8_t v) { void displaySetValue(uint8_t v) {
@ -92,7 +89,7 @@ void displaySetValue(uint8_t v) {
c = (a - b * 100) / 10; c = (a - b * 100) / 10;
d = a - c * 10 - b * 100; d = a - c * 10 - b * 100;
digitValues[2] = (b == 0) ? EMPTY_ID : (uint8_t)b; digitValues[2] = (b == 0) ? EMPTY_ID : (uint8_t)b;
digitValues[1] = (c == 0) ? EMPTY_ID : (uint8_t)c; digitValues[1] = ((c == 0) && (b == 0)) ? EMPTY_ID : (uint8_t)c;
digitValues[0] = (uint8_t)d; digitValues[0] = (uint8_t)d;
} }
@ -107,11 +104,6 @@ void displayExec(void *handleArg) {
for (const tPin *digit = DIGITS; *digit != PINS_END; digit++) { for (const tPin *digit = DIGITS; *digit != PINS_END; digit++) {
gpioSetPin(*digit, HIGH); gpioSetPin(*digit, HIGH);
} }
// const tPin *digit = DIGITS;
// do {
// gpioSetPin(*digit, HIGH);
// digit++;
// } while (*digit != PINS_END);
gpioSetPin(DIGITS[activeDigit], LOW); gpioSetPin(DIGITS[activeDigit], LOW);

View File

@ -33,6 +33,7 @@ void gpioInitPins() {
P1DIR |= pin.bit; P1DIR |= pin.bit;
P1SEL &= ~pin.bit; P1SEL &= ~pin.bit;
P1SEL2 &= ~pin.bit; P1SEL2 &= ~pin.bit;
gpioSetPin(p, pin.defaultOut);
} else if (pin.direction == PIN_IN) { } else if (pin.direction == PIN_IN) {
P1DIR &= ~pin.bit; P1DIR &= ~pin.bit;
P1SEL &= ~pin.bit; P1SEL &= ~pin.bit;
@ -50,6 +51,7 @@ void gpioInitPins() {
P2DIR |= pin.bit; P2DIR |= pin.bit;
P2SEL &= ~pin.bit; P2SEL &= ~pin.bit;
P2SEL2 &= ~pin.bit; P2SEL2 &= ~pin.bit;
gpioSetPin(p, pin.defaultOut);
} else if (pin.direction == PIN_IN) { } else if (pin.direction == PIN_IN) {
P2DIR &= ~pin.bit; P2DIR &= ~pin.bit;
P2SEL &= ~pin.bit; P2SEL &= ~pin.bit;
@ -63,7 +65,6 @@ void gpioInitPins() {
P2OUT |= pin.bit; P2OUT |= pin.bit;
} }
} }
gpioSetPin(p, pin.defaultOut);
} }
} }

View File

@ -28,6 +28,8 @@
int main() { int main() {
WDTCTL = WDTPW | WDTHOLD; WDTCTL = WDTPW | WDTHOLD;
__disable_interrupt();
// highest possible system clock // highest possible system clock
DCOCTL = DCO0 | DCO1 | DCO2; DCOCTL = DCO0 | DCO1 | DCO2;
BCSCTL1 = XT2OFF | RSEL0 | RSEL1 | RSEL2 | RSEL3; BCSCTL1 = XT2OFF | RSEL0 | RSEL1 | RSEL2 | RSEL3;
@ -62,7 +64,7 @@ int main() {
while (1) { while (1) {
schExec(); schExec();
LPM3; //LPM3;
} }
} }