src/sync.c
changeset 53 73bc47a0db55
parent 31 a82b70738e5c
child 71 95cd3376cc9f
equal deleted inserted replaced
52:1dc256e8e49a 53:73bc47a0db55
    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