diff -r b71655eca5e2 -r 40efa79d27dd examples/kerneltest/TestMasterSlave.c --- a/examples/kerneltest/TestMasterSlave.c Tue May 27 17:43:33 2008 +0200 +++ b/examples/kerneltest/TestMasterSlave.c Mon Jun 02 08:52:06 2008 +0200 @@ -35,8 +35,20 @@ } } +/*************************** EXIT *****************************************/ +void Exit(CO_Data* d, UNS32 id) +{ + masterSendNMTstateChange(&TestMaster_Data, 0x02, NMT_Reset_Node); + + //Stop master + setState(&TestMaster_Data, Stopped); +} + + int TestMasterSlave_start (void) { + TimerInit(); + if(strcmp(SlaveBoard.baudrate, "none")){ TestSlave_Data.heartbeatError = TestSlave_heartbeatError; @@ -83,21 +95,13 @@ { eprintf("Finishing.\n"); - EnterMutex(); - masterSendNMTstateChange (&TestMaster_Data, 0x02, NMT_Reset_Node); - LeaveMutex(); - - // Stop master - EnterMutex(); - setState(&TestMaster_Data, Stopped); - LeaveMutex(); - // Stop timer thread - StopTimerLoop(); + StopTimerLoop(&Exit); // Close CAN devices (and can threads) if(strcmp(SlaveBoard.baudrate, "none")) canClose(&TestSlave_Data); if(strcmp(MasterBoard.baudrate, "none")) canClose(&TestMaster_Data); + TimerCleanup(); eprintf("End.\n"); }