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

Błąd czasowy w pętli z volatile unsigned int Time_out w przerwaniu 25ms

Marek_Gorecki 24 Gru 2011 23:27 1554 14
REKLAMA

Podsumowanie tematu

✨ W dyskusji poruszono problem błędu czasowego w pętli z użyciem zmiennej volatile unsigned int Time_out, która jest inkrementowana w przerwaniu co 25 ms. Użytkownik zadał pytanie o maksymalny błąd czasowy przy zastosowaniu pętli, która powinna trwać 25 sekund. Odpowiedzi wskazują na możliwość wystąpienia błędu atomowości, gdzie w wyniku przerwania wartość Time_out może być odczytana niepoprawnie. Zasugerowano różne podejścia do rozwiązania problemu, w tym użycie bloków atomowych (ATOMIC_BLOCK) oraz wyłączanie przerwań, co jednak może prowadzić do zablokowania funkcji. Wskazano również na trudności kompilatorów w zapewnieniu atomowości operacji zerowania zmiennych.
Wygenerowane przez model językowy.
REKLAMA