funkcja uint16_t stmpe811_init() zawiera błędne wpisy inicjalizacji zbocza przerwań INT0, INT1 lub INT2, jest tak:
źle
-
#if USE_IRQ_NR == 0
-
// inicjalizacja przerwania synchronicznego INT0
-
// IRQ_DIR &= ~IRQ_PIN;
-
IRQ_PORT |= IRQ_PIN;
-
GICR |= (1<<INT0);
-
MCUCR &= (1<<ISC01); // zbocze opadające // <--- BŁĄD
-
#endif
-
-
#if USE_IRQ_NR == 1
-
// inicjalizacja przerwania synchronicznego INT1
-
// IRQ_DIR &= ~IRQ_PIN;
-
IRQ_PORT |= IRQ_PIN;
-
GICR |= (1<<INT1);
-
MCUCR &= (1<<ISC11); // zbocze opadające // <--- BŁĄD
-
#endif
-
-
#if USE_IRQ_NR == 2
-
// inicjalizacja przerwania asynchronicznego INT2
-
// IRQ_DIR &= ~IRQ_PIN;
-
IRQ_PORT |= IRQ_PIN;
-
GICR |= (1<<INT2);
-
MCUCSR &= (1<<ISC2); // zbocze opadające // <--- BŁĄD
-
#endif
|
powinno być tak:
dobrze
-
#if USE_IRQ_NR == 0
-
// inicjalizacja przerwania synchronicznego INT0
-
// IRQ_DIR &= ~IRQ_PIN;
-
IRQ_PORT |= IRQ_PIN;
-
GICR |= (1<<INT0);
-
MCUCR |= (1<<ISC01); // zbocze opadające // <--- POPRAWIONE
-
#endif
-
-
#if USE_IRQ_NR == 1
-
// inicjalizacja przerwania synchronicznego INT1
-
// IRQ_DIR &= ~IRQ_PIN;
-
IRQ_PORT |= IRQ_PIN;
-
GICR |= (1<<INT1);
-
MCUCR |= (1<<ISC11); // zbocze opadające // <--- POPRAWIONE
-
#endif
-
-
#if USE_IRQ_NR == 2
-
// inicjalizacja przerwania asynchronicznego INT2
-
// IRQ_DIR &= ~IRQ_PIN;
-
IRQ_PORT |= IRQ_PIN;
-
GICR |= (1<<INT2);
-
MCUCSR &= ~(1<<ISC2); // zbocze opadające // <--- POPRAWIONE
-
#endif
|