src/sync.c
changeset 443 994c99afb344
parent 378 d2abf6c8c27b
child 446 f138b759026f
equal deleted inserted replaced
442:010c26b9ba89 443:994c99afb344
    84 **                                                                                                 
    84 **                                                                                                 
    85 ** @param d                                                                                        
    85 ** @param d                                                                                        
    86 **/ 
    86 **/ 
    87 void startSYNC(CO_Data* d)
    87 void startSYNC(CO_Data* d)
    88 {
    88 {
       
    89 	if(d->syncTimer != TIMER_NONE){
       
    90 		stopSYNC(d);
       
    91 	}
       
    92 
    89 	RegisterSetODentryCallBack(d, 0x1005, 0, &OnCOB_ID_SyncUpdate);
    93 	RegisterSetODentryCallBack(d, 0x1005, 0, &OnCOB_ID_SyncUpdate);
    90 	RegisterSetODentryCallBack(d, 0x1006, 0, &OnCOB_ID_SyncUpdate);
    94 	RegisterSetODentryCallBack(d, 0x1006, 0, &OnCOB_ID_SyncUpdate);
    91 
    95 
    92 	if(d->syncTimer != TIMER_NONE){
    96 	if(*d->COB_ID_Sync & 0x40000000ul && *d->Sync_Cycle_Period)
    93 		stopSYNC(d);
       
    94 	}
       
    95 	
       
    96 	if(*d->COB_ID_Sync & UNS32_LE(0x40000000) && *d->Sync_Cycle_Period)
       
    97 	{
    97 	{
    98 		d->syncTimer = SetAlarm(
    98 		d->syncTimer = SetAlarm(
    99 				d,
    99 				d,
   100 				0 /*No id needed*/,
   100 				0 /*No id needed*/,
   101 				&SyncAlarm,
   101 				&SyncAlarm,