work.c

В этот файл добавим объявление внешней фунции:

/* external function */
extern void delay_ms(unsigned int timeout);

Также исправим бесконечный цикл добавив в него задержку и переключение светодиодов, а также изменение режима мигания:

/* enable leds */
    LED_PORT->ODR |= ALL_LEDS;
    /* infinity loop */
    while (1) {
        /* if button pressed */
        if (BUT_PORT->IDR & BUT1) {
            /* change status to two leds - red & green */
            LED_PORT->ODR ^= GREEN_LED | RED_LED;
            /* wait while button pressed */
            while (BUT_PORT->IDR & BUT1);
        }
        /* wait a half second */
        delay_ms(500);
        /* switch leds */
        LED_PORT->ODR ^= ALL_LEDS;
    }