Układ mikroporcesorowy mierzący częśtotliwość na 8051

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
gomarko
-
Posty: 71
Rejestracja: 13 paź 2010, 21:20
Lokalizacja: Konin

Post autor: gomarko » 25 sty 2011, 13:13

Nie jest dobrze.

Na początku opisujesz konfigurację licznika T0 jak 16bitowy
czyli w trybie 1 (w każdym przerwaniu trzeba ładować do niego wartości początkowe )
co stwarza problemy które mogą powodować niedokładne odmierzanie czasu

Następnie podajesz konfigurację (asembler) dla T0 w trybie 2
Tryb 2 to jest licznik 8 bitowy, ale po przepełnieniu sam automatycznie
ładuje stan początkowy (jednak trzeba w przerwaniu odliczyć więcej dla uzyskania 1 sekundy)

Zakładasz użycie rezonatora kwarcowego o częstotliwości 12MHz
o ile do odliczania czasu jest to wygodne, to z ustawieniem prędkości transmisji szeregowej
już będzie gorzej. Z tego właśnie powodu tak często stosuje się kwarc 11,0592MHz,
który precyzyjnie umożliwia uzyskanie standardowych prędkości transmisji

Algorytm jest do poprawki
W takim układzie program przeleci jeden raz od początku do końca, i co dalej???
Jeżeli ma działać w pętli to trzeba wrócić do miejsca po inicjalizacji rejestrów
Dobrze by było wstawić blok warunkowy (decyzyjny) zapętlający program
jeżeli pomiar trwa, i umożliwiający dalsze kroki jak już pomiar się zakończył

To tak z grubsza

ODPOWIEDZ