while (1)
{
int przycisk = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);
// Wykrywanie nowego nacisniecia
if (przycisk == GPIO_PIN_SET && poprzedni == 0)
{
// Eliminacja drgan stykow
HAL_Delay(30);
// Sprawdzamy przycisk ponownie
if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_SET)
{
numer = (numer + 1) % 4;
}
}
poprzedni = przycisk;
// Gasimy wszystkie diody
HAL_GPIO_WritePin(GPIOD,
GPIO_PIN_12 | GPIO_PIN_13 |
GPIO_PIN_14 | GPIO_PIN_15,
GPIO_PIN_RESET);
// Zapalamy jedna wybrana diode
HAL_GPIO_WritePin(GPIOD, leds[numer], GPIO_PIN_SET);
}