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