logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak naprawić zawieszanie się programu odliczającego czas na AT90S2313?

erotoman 22 Mar 2008 22:44 1038 10
REKLAMA

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy problemu z programem do odliczania czasu na mikrokontrolerze AT90S2313 z rezonatorem 4 MHz, gdzie odliczanie sekund (z dokładnością do 0,1 s lub 0,01 s) nie jest powtarzalne i program zawiesza się przy kolejnych próbach. Autor stosuje timer1 i przerwania co 10 ms, jednak implementacja procedury obsługi przerwania wewnątrz głównej pętli jest niepoprawna. Wskazano, że procedura przerwania powinna być oddzielona od głównej pętli, z odpowiednim zakończeniem instrukcją RETURN. Problemy wynikają z braku prawidłowej obsługi stosu i struktury programu, co powoduje zawieszanie się programu po pierwszym odliczaniu. Próby użycia instrukcji GOTO lub funkcji WAIT MS nie przyniosły oczekiwanych rezultatów ze względu na niedokładność i brak powtarzalności. Zalecane jest poprawne skonfigurowanie timerów i przerwań oraz oddzielenie logiki odliczania od głównej pętli programu, aby umożliwić wielokrotne powtarzanie odliczania czasu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA