Coś w ten deseń, chociaż jeśli chcesz sobie poćwiczyć z znacznikami czasu to proponuje "zabawę" którą sobie wymyśliłem jak nie mogłem ogarnąć synchronizacji.
1. Master i slave powinny mieć oscylatory stabilizowane kwarcem (albo dokładne wewnętrzne).
2. Master synchronizuje zegar (licznik) slave'ów z swoim.
3. Każdy rozkaz roboczy (włączenie LED itp.) jest dodatkowo powiększony o czas wykonania ("godzinę" startu).
Działało to w ten sposób, że po zsynchronizowaniu zegarów (zawartości rejestrów z danymi zliczania czasu) master do każdego rozkazu dołączał informację przy jakiej wartości licznika czasu rozkaz ma zostać wykonany. Może śmiesznie to zabrzmi ale zainspirował mnie do tego jakiś niskobudżetowy film szpiegowski gdzie bohaterzy synchronizowali zegarki przed akcją
Do takiego algorytmu dodawałem symulowane błędy komunikacji itp. żeby sprawdzić jak długie powinno być okno wymiany danych (czas do wykonania) i w ogóle wszystkie głupoty jakie przyszły mi do głowy.
Powyższa metoda jest dosyć powolna ale skuteczna o ile nie sieć nie wpadnie w bezustanne odpytywanie uszkodzonego slave.
Powodzenia z CAN.