Witam, przygotowując kolejny projekt i przeglądając dokumentacje porządnie napisanych bibliotek na AVR napotkałem ciekawy problem. Wielu twórców, jak w poniższym linku
http://nesl.ee.ucla.edu/projects/sos-beta/api/mica2_2hardware_8h.html#a5
stosuje bloki zapobiegania przerwaniom nawet w trakcie inicjalizacji podstawowych peryferiów. Znam działanie bloków ATOMIC i znaczenie sei(), cli(), jednak zaskoczyła mnie ta ostrożność. Twórca korzysta tam z
Czy w przypadku odczytu z adc lub generacji odpowiedzi na przykład w protokole modbus jest to konieczne? Jaki jest jeszcze powszechny zakres stosowania takiej atomiczności a AVR? Jakie są możliwe skutki i zalety takiego działania?
Pozdrawiam, Łukasz.
http://nesl.ee.ucla.edu/projects/sos-beta/api/mica2_2hardware_8h.html#a5
stosuje bloki zapobiegania przerwaniom nawet w trakcie inicjalizacji podstawowych peryferiów. Znam działanie bloków ATOMIC i znaczenie sei(), cli(), jednak zaskoczyła mnie ta ostrożność. Twórca korzysta tam z
Kod: C / C++
Czy w przypadku odczytu z adc lub generacji odpowiedzi na przykład w protokole modbus jest to konieczne? Jaki jest jeszcze powszechny zakres stosowania takiej atomiczności a AVR? Jakie są możliwe skutki i zalety takiego działania?
Pozdrawiam, Łukasz.