Skip to content

Latest commit

 

History

History
85 lines (61 loc) · 4.42 KB

README.md

File metadata and controls

85 lines (61 loc) · 4.42 KB

Náplň cvičenia

  • s pomocou CubeMX vytvoriť nový projekt a nastaviť počiatočnú konfiguráciu mikrokontrolera
  • v názve adresy, kde vytvárame projekt, sa nesmie nachádzať diakritika ani medzery (može to sposobovať problemy)!
  • predstavenie nového zadania

CubeMX a nový projekt

1. vytvorenie nového STM32 projektu

2. zvolenie typu MCU, ktorý chceme programovať (STM32F303K8)

3. zvolenie názvu projektu (všetko ostatné je už dobre nastavené od začiatku)

  • projekt je týmto krokom vytvorený a prechádza sa do prostredia CubeMX, kde sa konfigurujú periférie MCU

4. konfigurácia periférii MCU

  • nastavenie funkcie GPIO alebo ich priradenie k periférii (podľa potreby)

  • konfigurácia konkrétnych GPIO, ktoré boli zvolené v predošlom kroku

  • v nastaveniach hodín (clock configuration) nie je nutná žiadna zmena, pretože nám stačí počiatočná konfigurácia

5. nastavenia súvisiace s generovaním kódu

  • nastavenia, ktoré cheme nastaviť ešte pred samotným generovaním kódu

  • pre každú použitú perifériu bude vygenerovaný ".c" a ".h" súbor

  • zvolenie "LL - low level" knižnice

6. generovanie kódu

  • vygenerovanie kódu

Zadanie 2 (3b)

  • Toto zadanie priamo nadväzuje na zadanie z predchádzajúceho cvičenia - zadanie_cv1. Vytvorte aplikáciu pre detegovanie hrany vstupného signálu privedeného na vstup MCU pričom LED pripojená na jeho výstup bude indikovať úspešnú detekciu hrany. Vstupný signál je privedený na pin GPIOA-3. Hrana je generovaná prostredníctvom tlačidla. Výstupný signál je privedený na pin GPIOA-4.

Úlohy:

  1. V súbore "Inc/assignment.h" definovať enum "EDGE_TYPE", ktorý bude enumerovať 3 stavy: žiadna hrana (NONE = 0), nábežná hrana (RISE = 1), dobežná hrana (FALL = 2).

  2. V súbore "Inc/assignment.h" deklarujte a v subore "Src/main.c" definujte funkciu "edgeDetect", ktorej úlohou je detegovať hranu (stlačenie tlačidla). Funkcia vracia hodnotu typu "EDGE_TYPE" a má dva vstupné argumenty:

EDGE_TYPE edgeDetect(uint8_t pin_state, uint8_t samples);
  • Vstupný parameter "pin_state" predstavuje aktuálny stav vstupného pinu, na ktorom sa deteguje hrana. Nadobúda hodnotu "1" alebo "0".
  • Vstupný parameter "samples" definuje koľkokrát v rade musí byť detegovaný nový stav vstupného pinu, aby sa to považovalo za hranu - stlačenie tlačidla.
  • Príklad:
    • predchádzajúci stav = 0, aktuálny stav = 1, samples = 5
    • aby bola detegovaná hrana, musí sa 5-krát v rade prečítať rovnaký stav tj. 0,1,1,1,1,1 - nábežná hrana bola detegovaná
    • ak by pri čítaní zo vstupného pinu nastala situácia 0,1,1,1,0,1 - pri zmene stavu z 0 na 1 sa na vstupe vyčítala hodnota 1 len 3-krát v rade, vyhodnotí sa to ako "žiadna hrana", pretože nebola splnená podmienka.
  1. Upraviť program vykonávajúci sa v "main" funkcii tak, aby LED zmenila svoj stav (On -> Off, Off -> On) len vtedy, ak bol detegovaný vami zvolený typ hrany. LED bude meniť svoj stav len ak bola detegovaná nábežná hrana alebo bude meniť svoj stav len v prípade detekcie dobežnej hrany.