examples/TestMasterMicroMod/TestMasterMicroMod.c
changeset 454 bc000083297a
parent 378 d2abf6c8c27b
child 465 2ef560acfa86
--- a/examples/TestMasterMicroMod/TestMasterMicroMod.c	Tue Apr 29 13:54:23 2008 +0200
+++ b/examples/TestMasterMicroMod/TestMasterMicroMod.c	Fri May 02 17:30:37 2008 +0200
@@ -82,7 +82,7 @@
 			RW);  /* UNS8 checkAccess */
 }
 
-static init_step = 0;
+static int init_step = 0;
 
 /*Froward declaration*/
 static void ConfigureSlaveNode(CO_Data* d, UNS8 nodeId);
@@ -346,7 +346,7 @@
 }
 #endif
 
-void help()
+void help(void)
 {
   printf("**************************************************************\n");
   printf("*  TestMasterMicroMod                                        *\n");
@@ -392,6 +392,14 @@
 	}
 }
 
+/***************************  EXIT  *****************************************/
+void Exit(CO_Data* d, UNS32 id)
+{
+	masterSendNMTstateChange(&TestMaster_Data, 0x02, NMT_Reset_Node);
+    
+    //Stop master
+	setState(&TestMaster_Data, Stopped);
+}
 /****************************************************************************/
 /***************************  MAIN  *****************************************/
 /****************************************************************************/
@@ -449,6 +457,7 @@
   /* install signal handler for manual break */
 	signal(SIGTERM, catch_signal);
 	signal(SIGINT, catch_signal);
+	TimerInit();
 #endif
 
 #ifndef NOT_USE_DYNAMIC_LOADING
@@ -475,18 +484,13 @@
 	pause();
 	eprintf("Finishing.\n");
 	
-	// Reset the slave node for next use (will stop emitting heartbeat)
-	masterSendNMTstateChange (&TestMaster_Data, slavenodeid, NMT_Reset_Node);
-	
-	// Stop master
-	setState(&TestMaster_Data, Stopped);
-	
 	// Stop timer thread
-	StopTimerLoop();
+	StopTimerLoop(&Exit);
 	
 fail_master:
 	if(MasterBoard.baudrate) canClose(&TestMaster_Data);	
 
+  TimerCleanup();
   return 0;
 }