Jeśli timer programowy (zmienna) jest 32bitowy to operacje odczytu i zapisu są "niepodzielne", więc problemu nie ma
Jeśli musi być dłuższy to... w sumie nie wiem co by było najbardziej eleganckie - ja bym spłodził coś z ldrex/strex, ale niech się lepiej wypowie ktoś mądrzejszy ode mnie, żebym głupot nie nagadał.
Nic nie piszesz o języku, więc strzelam że C. Od wersji C11 jest też nagłówek <stdatomic.h> (
klik), który pozwala definiować zmienne atomowe i "operować" nimi. Ale nie wiem jak to się spisuje w praktyce.
Dodano:
Jeszcze mi przyszło do głowy, że może Koledze chodziło nie tyle o samo ustawianie i odczytywanie co o np. inkrementację. Jeśli tak to również przyda się ldrex/strex. Atomowa inkrementacja:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w sumie to samo można uzyskać korzystając z funkcji z stdatomic (np. atomic_fetch_add).
Co do M0 to się nie wypowiadam, bo to taka bida, że może nie mieć takich bajerów