21 */ |
21 */ |
22 |
22 |
23 #include "data.h" |
23 #include "data.h" |
24 #include "sync.h" |
24 #include "sync.h" |
25 |
25 |
|
26 // Prototypes for internals functions |
|
27 void SyncAlarm(CO_Data* d, UNS32 id); |
|
28 UNS32 OnCOB_ID_SyncUpdate(CO_Data* d, const indextable * unsused_indextable, |
|
29 UNS8 unsused_bSubindex); |
|
30 |
|
31 |
|
32 |
|
33 /*****************************************************************************/ |
26 void SyncAlarm(CO_Data* d, UNS32 id) |
34 void SyncAlarm(CO_Data* d, UNS32 id) |
27 { |
35 { |
28 sendSYNC(d, *d->COB_ID_Sync & 0x1FFFFFFF) ; |
36 sendSYNC(d, *d->COB_ID_Sync & 0x1FFFFFFF) ; |
29 } |
37 } |
30 |
38 |
|
39 /*****************************************************************************/ |
31 // This is called when Index 0x1005 is updated. |
40 // This is called when Index 0x1005 is updated. |
32 UNS32 OnCOB_ID_SyncUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex) |
41 UNS32 OnCOB_ID_SyncUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex) |
33 { |
42 { |
34 startSYNC(d); |
43 startSYNC(d); |
35 return 0; |
44 return 0; |
36 } |
45 } |
37 |
46 |
|
47 /*****************************************************************************/ |
38 void startSYNC(CO_Data* d) |
48 void startSYNC(CO_Data* d) |
39 { |
49 { |
40 RegisterSetODentryCallBack(d, 0x1005, 0, &OnCOB_ID_SyncUpdate); |
50 RegisterSetODentryCallBack(d, 0x1005, 0, &OnCOB_ID_SyncUpdate); |
41 RegisterSetODentryCallBack(d, 0x1006, 0, &OnCOB_ID_SyncUpdate); |
51 RegisterSetODentryCallBack(d, 0x1006, 0, &OnCOB_ID_SyncUpdate); |
42 |
52 |
53 US_TO_TIMEVAL(*d->Sync_Cycle_Period), |
63 US_TO_TIMEVAL(*d->Sync_Cycle_Period), |
54 US_TO_TIMEVAL(*d->Sync_Cycle_Period)); |
64 US_TO_TIMEVAL(*d->Sync_Cycle_Period)); |
55 } |
65 } |
56 } |
66 } |
57 |
67 |
|
68 /*****************************************************************************/ |
58 void stopSYNC(CO_Data* d) |
69 void stopSYNC(CO_Data* d) |
59 { |
70 { |
60 d->syncTimer = DelAlarm(d->syncTimer); |
71 d->syncTimer = DelAlarm(d->syncTimer); |
61 } |
72 } |
62 |
73 |