.. _z2: ================= Zadanie 2: Stoper ================= Data ogĹoszenia: 24.10.2018 Termin oddania: 05.12.2018 NapisaÄ prosty stoper. Stoper wyĹwietla aktualny stan (liczbÄ dziesiÄtnÄ 0-9999) na wyĹwietlaczu 7-segmentowym. Po uruchomieniu, stoper ma pokazywaÄ 0 i byÄ zatrzymany. Przyciski majÄ nastÄpujÄ ce funkcje: - ``btn[3]``: resetuje stoper do stanu poczÄ tkowego. - ``btn[2]``: zatrzymuje stoper. - ``btn[1]``: uruchamia stoper w trybie odliczania w gĂłrÄ. - ``btn[0]``: uruchamia stoper w trybie odliczania w dĂłĹ. Gdy stoper jest uruchomiony, przeĹÄ czniki ``sw[4:0]`` wybierajÄ szybkoĹÄ odliczania: stoper powinien zwiÄkszaÄ lub zmniejszaÄ swĂłj licznik o 1 z czÄstotliwoĹciÄ ``oscylator / 2 ** sw[4:0]``. PrzeĹÄ cznik ``sw[7]`` wybiera ĹşrĂłdĹo sygnaĹu zegarowego: przeĹÄ czony w dóŠwybiera zegar ``mclk`` (oscylator 50MHz na pĹytce), a przeĹÄ czony w gĂłrÄ wybiera zegar ``uclk`` (oscylator zewnÄtrzny wĹoĹźony w gniazdko). JeĹli stoper jest w trybie odliczania w dóŠi jego obecnÄ wartoĹciÄ licznika jest 0, powinien siÄ zatrzymaÄ. Analogicznie powinien siÄ zatrzymaÄ, jeĹli wartoĹciÄ licznika jest 9999 i jest w trybie odliczania w gĂłrÄ. Diody powinny wyĹwietlaÄ nastÄpujÄ ce informacje kontrolne: - ``led[0]``: Ĺwieci, jeĹli stoper jest w trybie odliczania w dĂłĹ. - ``led[1]``: Ĺwieci, jeĹli stoper jest w trybie odliczania w gĂłrÄ. - ``led[2]``: Ĺwieci, jeĹli odliczanie zatrzymaĹo siÄ przez osiÄ gniÄcie minimalnej bÄ dĹş maksymalnej wartoĹci licznika (naciĹniÄcie ktĂłregokolwiek przycisku powinno wyczyĹciÄ ten stan). NaleĹźy pamiÄtaÄ o zastosowaniu synchronizatorĂłw na wejĹciach od uĹźytkownika i odpowiedniego moduĹu do przeĹÄ czania sygnaĹu zegarowego.