startup.c

Для начала добавим указатель на обработчик прерывания от exti0:
    0,                  /*!%5 RCC                          */                                           
    exti0_irq_handler,  /*!%6 EXTI Line0                   */                       
    0,                  /*!%7 EXTI Line1                   */

После этого опишем сам обработчик согласно ранее представленному алгоритму:
/* exti0 irq handler */
void exti0_irq_handler(void) {
    /* if button pressed */
    if (BUT_PORT->IDR & BUT1) {
        /* enable leds */
        LED_PORT->ODR |= ALL_LEDS;
    }
    /* if button not pressed */
    else {
        /* disable leds */
        LED_PORT->ODR &= ~ALL_LEDS;
    }
}

Comments