{{indexmenu_n>8}} ======== HW 08 (Nucleo) - LED a tlačítko ======== ^ Termín odevzdání | ** (st) 16.05.2020 23:59 PDT** | ^ Volitelné zadání | 1 b | ^ Počet uploadů | bez omezení | /* ^ **[[courses:b3b36prg:hw:start#Úlohy HW08, HW09 a HW10 | Časný termín]]** | **[[courses:b3b36prg:hw:start#Úlohy HW08, HW09 a HW10 | (st) 08.04.2020 23:59 PDT]]** | ^ Termín odevzdání | ** (st) 15.04.2020 23:59 PDT** | ^ **[[courses:b3b36prg:hw:start#Úlohy HW08, HW09 a HW10 | Finální termín]]** | **[[courses:b3b36prg:hw:start#Úlohy HW08, HW09 a HW10 | 25.04.2020 23:59 PDT]]** | ^ Povinné zadání | až 2b | ^ Volitelné zadání | není | ^ Bonusové zadání | není | ^ Počet uploadů | bez omezení | */ Cílem této úlohy je získat základní zkušenost s programováním desky Nucleo STM32F446RE a to prostřednictvím prostředí [[https://developer.mbed.org/]] případně křížovou kompilací. Binární obraz funkční aplikace {{:courses:b3b36prg:hw:prg-hw08-nucleo-stm32f446re.zip|}}. --- //[[faiglj@fel.cvut.cz|Jan Faigl]] 2019/04/23 09:30// **Aktualizace**: Oprava počtu period blikání. ===== Povinné zadaní ===== Realizujte program, který bude reagovat na stisk tlačítka na desce Nucleo STM32F446RE a na základě počtu stisků upravuje periodů blikání LED na desce a to následovně: * Jednoduchý stisk - postupně dekrementuje periodu blikání z 1000 ms, 500 ms, 400 ms, 300 ms, 200 ms, 100 ms, 50 ms, další stisk pak LED nechá trvale rozsvícenou * Dlouhý stisk (delší než 200 ms) - nastavuje periodu na 1000 ms a každý další jednoduchý stisk pokračuje v postupném snižování periody V ''mbed.org'' můžete použít objekty [[https://os.mbed.com/docs/mbed-os/v5.12/apis/ticker.html | Ticker]] a/nebo [[ https://os.mbed.com/docs/mbed-os/v5.12/mbed-os-api-doxy/_timer_8h_source.html | Timer]]. ''Ticker'' lze využít pro peridické volání //callback// funkce předané objektu metodou ''attach''. Volání callback funkce je zpravidla realizováno jako obsluha přerušení od časovače a obecně platí, že v obsluze přerušení je vhodné se vyvarovat časově náročným operacím jako je například čekání (sleep) nebo čekání na komunikaci. Časovač ''Timer'' lze využít pro měření času, např. metodou ''read_ms()''. ====== Odevzdání a hodnocení ====== Program pokud možno realizujte na cvičení, nahrajte do odevzdávacího systému. Funkčnost programu ověří učitel na cvičení nebo na dalším cvičení. Program můžete implementovat jak v prostředí ''mbed'' tak přímo s křížovou kompilací. V případě ''mbed'' pojmenujte soubor ''hw08-mbed.cpp'' a v případě křížové kompilace pak ''hw08-cross.c'' ^ ^ Povinné zadání ^ ^ Název v BRUTE | HW08 | ^ Odevzdávané soubory | ''hw08-mbed.cpp'' nebo ''hw08-cross.c'' | ^ Argumenty při spuštění | žádné | ^ Procvičované oblasti | programování pro Nucleo |