Adding time stamp for my thread executions

Hi! I need to add some time stamps for my sampling, for this I have used following code: xLastWakeTime = xTaskGetTickCount();             for(;;)         {         portTickType old_wake_time = xLastWakeTime;      // Wait for the next cycle.         vTaskDelayUntil( &xLastWakeTime, xFrequency );         double millisec=(double)((xLastWakeTime-old_wake_time)/portTICK_RATE_MS);         char data[40];     sprintf(data, " X =%d; Y =%d; Z =%drn", millisek, acc[1], acc[2]); Im getting strange values… Why doesn’t this work? Thanks! MB

Adding time stamp for my thread executions

Hi, Which port and compiler are you using? A couple of points: char data[40] – do you have enough stack space to allocate 40 bytes?  Maybe static char data[40] would help.  sprintf will use lots of stack also. In the sprintf you are using %d (int format) to print a double. Lastly – I presume you are wanting a time stamp in milliseconds?  portTICK_RATE_MS is the time in MS between each tick.  If you have a tick rate of 500hz (for example) then portTICK_RATE_MS will be 2.  Then, if 10 ticks have passed between xLastWakeTime and old_wake_time this is 10 * 2 milliseconds.  10 / 2 will give you 5ms, which I presume is not what you want. Regards.

Adding time stamp for my thread executions

Hello! Thank you for helping med with my bloopers, problem solved! //MB