Warning
This page is located in archive. Go to the latest version of this course pages.

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);
    }
}

courses/b2m37mam/priklady/stm32/02-toggle.txt · Last modified: 2022/09/13 14:31 by nentvond