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

ARM03 - Stopky

Možný bodový zisk 3+2b
Vzorový program ARM03_Stopwatch.zip

Zadání

  • Navrhněte program v jazyce C realizující stopky počítající do 99.99s se zobrazením času ve formátu %5.2f
  • Celá část času bude zobrazením jednotek a desítek vteřin, přičemž desítky vteřin se zobrazí pouze při překročení 10s
  • K vypracování využijte rozšiřující desku (Funduino) s využitím dynamického displeje řízeným v multiplexním režimu
  • K řízení stopek využijte dvou tlačítek, kde první bude spouštět a zastavovat stopky a druhé je bude nulovat

Bonus

  • S použitím záchytného systému (Input capture mód) rozšiřte stopky tak, aby se na displeji zobrazil staticky uplynulý čas vždy po stisku tlačítka
  • Do prvního stisku tlačítka pro zachycení času zobrazujte aktuálně uplynulý čas
  • Zachycení času nebude realizováno přes program, ale přímým napojením tlačítka na záchytný systém časovače (přes alternativní funkci) - zde je důležité si uvědomit možnosti časovačů v kombinaci s dostupnými tlačítky (PA1, PA4, PB0)
  • Vyčtení času z čítače nebo záchytného systému realizujte v hlavní smyčce programu, abyste neomezovali přerušovací systém
  • Při zastavení časovače se na displeji zobrazí aktuální čas

Doporučený postup pro bonus

  • Vyberte si vhodný časovač pro realizaci úlohy s ohledem na možnosti propojení tlačítka (PA1, PA4, PB0) a záchytného systému časovače, viz. tabulka alternativních funkcí

Podpůrné materiály

Datasheet posuvného registru 74HC595

Převodní tabulka čísel na segmenty

// segments order: hgfedcba
const char NumbersASCII[11] = {
  0x3F, /* 0 */
  0x06, /* 1 */
  0x5B, /* 2 */
  0x4F, /* 3 */
  0x66, /* 4 */
  0x6D, /* 5 */
  0x7D, /* 6 */
  0x07, /* 7 */
  0x7F, /* 8 */
  0x6F, /* 9 */
  0x40, /* - */
};

Časový diagram zápisu dat do displeje

courses/b2m37mam/homeworks/b_hw03.txt · Last modified: 2023/11/30 08:46 by nentvond