.. _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.