FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [January 2012 Threads] time measurePosted by Braun on January 27, 2012 Hello,
efm32g290f128, arm3, IAR
I have a task priority 2 and priority tasks of these two creates the first Now I will measure the time how long the two tasks need. I'm thinking of the SysTick timer. He gives an interrupt every ms. Am I on the wrong track? Is there something better?
RE: time measurePosted by Dave on January 27, 2012 Your question is not clear, but here are some general comments on measuring time.
You can get the tick count by calling xTaskGetTickCount(). This will increment at the tick frequency, so give an accuracy of roughly twice the tick frequency. If that is good enough, use that.
If you want a higher resolution time value then use a hardware peripheral timer, and read its count value directly.
Hope that helps.
RE: time measurePosted by Braun on January 27, 2012 Ok, Thank you
I need a time reference, and I would like to build on a hardware peripheral timer.
The timer should be started by the task with priority 2. If the task with Priorität2, the other tasks created with Priority 1 -> suspend if the tasks is finished with Priority 1 -> Task Priority 2 resume Now I want to measure the time for this part How can I implement this?
RE: time measurePosted by Richard on January 27, 2012 If I understand you correctly, then you have the following scenario, where P1 is a task with priority 1, and P2 is a task with priority 2. 1: P2 suspends itself. 2: Because P2 is suspended P1 runs. 3: When P1 has done something it un-suspends (resumes) P2, so P2 runs again. and you want to measure between step 1 and step 2. If the tick count has enough resolution then you can do that by: void P2( void *pvParameters ) { xTickType xTimeBefore, xTotalTimeSuspended;
____for( ;; ) ____{ ________/* Take a time before suspending. */ ________xTimeBefore = xTaskGetTickCount();
________/* Suspend the task. */ ________vTaskSuspend( NULL );
________/* The other task will have run an unsuspended P2 for this line to execute. */ ________xTotalTimeSuspended = xTaskGetTickCount() - xTimeBefore;
Regards.
RE: time measurePosted by Braun on February 1, 2012 Yes this work, thank you.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|