====== ARM02 - Světelný had (ASM) ====== ^ Bodový zisk | 2 b | ^ Použitý jazyk | ASM | ^ Vzorový program | {{ :courses:b2m37mam:homeworks:arm02_snake.zip | ARM02_Snake.zip }} | Naprogramujte v jazyce symbolických adres (Assembler) hada na řadě LED. ===== Zadání ===== * V jazyce symbolických adres navrhněte program hada o délce alespoň 2 segmenty na některé z rozšiřujících desek * Pro zobrazení využijte na MAM-Shield řadu 12 (8) LED nebo na Funduinu můžete využít 4 LED či segmenty dynamického displeje * Pohyb hada řiďte prodlevou s vhodně zvolenou periodou (například 0.5 s) Pozor na výchozí hodnoty u registru MODER ===== Návod ===== * Využijte [[courses:b2m37mam:priklady:stm32:01-gpio|kostru programu]] jazyka symbolických adres na blikání LED a rozšiřte ho o posun hada. * Ideálním řešením je využití funkce rotace **LSR** nebo **LSL** pro pohyb hada po řadě LED ze zjednodušené [[courses:b2m37mam:tutorials:asm_stm32|instrukční sady]]. * Pokud budete využívat na Funduinu 4 LED, tak je berte jako skupinu 3+1 (PA567 + PB6) * Pro plný svit LED D2-D4 (PA67 a PB6) na Funduinu je třeba nastavit těmto LED typ výstupu na Open-Drain (OD), naopak pro D1 (PA5) nechte typ výstupu Push-Pull, byť bude LED trochu svítit. * Vysvětlení: Jelikož Funduino je napájeno 5V, ale MCU pouze 3.3V, tak tyto LED nelze plně vypnout v režimu Push-Pull, proto je třeba nastavit výstup jako OD. V případě, že by se odpojila činnost LD2 na Nucleu (prosíme nemodifikovat), tak lze také docílit zhasnutí D1 v režimu OD.