examples/TestMasterSlaveLSS/TestMasterSlaveLSS.c
changeset 454 bc000083297a
parent 387 6efc85c5493e
child 465 2ef560acfa86
--- a/examples/TestMasterSlaveLSS/TestMasterSlaveLSS.c	Tue Apr 29 13:54:23 2008 +0200
+++ b/examples/TestMasterSlaveLSS/TestMasterSlaveLSS.c	Fri May 02 17:30:37 2008 +0200
@@ -57,7 +57,7 @@
 }
 #endif
 
-void help()
+void help(void)
 {
   printf("**************************************************************\n");
   printf("*  TestMasterSlaveLSS                                        *\n");
@@ -122,6 +122,19 @@
 	}
 }
 
+/***************************  EXIT  *****************************************/
+void Exit(CO_Data* d, UNS32 id)
+{
+	eprintf("Finishing.\n");
+	masterSendNMTstateChange (&TestMaster_Data, 0x00, NMT_Stop_Node);
+
+	eprintf("reset\n");
+
+	// Stop master
+	setState(&TestMaster_Data, Stopped);
+
+}
+
 /****************************************************************************/
 /***************************  MAIN  *****************************************/
 /****************************************************************************/
@@ -202,6 +215,7 @@
   /* install signal handler for manual break */
 	signal(SIGTERM, catch_signal);
 	signal(SIGINT, catch_signal);
+	TimerInit();
 #endif
 
 #ifndef NOT_USE_DYNAMIC_LOADING
@@ -274,19 +288,8 @@
 	
 	pause();
 
-	eprintf("Finishing.\n");
-    EnterMutex();
-	masterSendNMTstateChange (&TestMaster_Data, 0x00, NMT_Stop_Node);
-    LeaveMutex();
-
-	eprintf("reset\n");
-	// Stop master
-    EnterMutex();
-	setState(&TestMaster_Data, Stopped);
-    LeaveMutex();
-	
 	// Stop timer thread
-	StopTimerLoop();
+	StopTimerLoop(&Exit);
 	
 	// Close CAN devices (and can threads)
 	if(strcmp(MasterBoard.baudrate, "none")) canClose(&TestMaster_Data);	
@@ -295,5 +298,6 @@
 fail_slaveB:
 	if(strcmp(SlaveBoardA.baudrate, "none")) canClose(&TestSlaveA_Data);
 fail_slaveA:
+	TimerCleanup();
 	return 0;
 }