====== 02 - Přepínání LED ====== #include "stm32f4xx.h" /* * definice maker, ktera se budou pouzivat pro praci s 32b registrem STM32F4xx */ #define setbit(reg, bit) ((reg) |= (1U << (bit))) #define clearbit(reg, bit) ((reg) &= (~(1U << (bit)))) #define togglebit(reg, bit) ((reg) ^= (1U << (bit))) #define getbit(reg, bit) ((reg & (1U << bit)) >> bit) /* * funkce pro nastaveni portu PC.13, ke kteremu je pripojeno na desce Nucleo F401RE * systemove tlacitko (modre). */ void buttonConfig(void) { setbit(RCC->AHB1ENR, 2); /* RCC->AHB1ENR |= 0x05; -- konfigurace dvou bran najednou */ setbit(GPIOC->PUPDR, 26); } /* * funkce pro nastaveni portu PA.5, ke kteremu je pripojena na desce Nucleo F401RE * uzivatelska LED dioda. */ void ledConfig() { /* minimalni konfigurace, kompletni konfigurace viz uloha 1 */ setbit(RCC->AHB1ENR, 0); setbit(GPIOA->MODER, 10); } int main(void) { ledConfig(); buttonConfig(); while (1) { if (!getbit(GPIOC->IDR, 13)) setbit(GPIOA->ODR, 5); else clearbit(GPIOA->ODR, 5); } }