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.