Interrumption problems

Posted by Nobody/Anonymous on April 16, 2007
Hello!!!

I'm working some days ago with the FREErtos and PIC18F8621...i have to work with 3 metal sensor, we use the timer0 to create the interruption each 800ms. This process is periodic so each 800ms one of this 3 sensor will turn on and make some operation and after the other and the other. I tried to use the vTaskDelay but the program didn't work well....

So I don't know if i can do use it with the Freertos.. I mean use the timer0 for interruption into the freertos.... can you help me with some ideas?? I really need your help!!...

Thanks so much for your help, have a nice day!!

Moneditas

RE: Interrumption problems

Posted by Nobody/Anonymous on April 16, 2007
How does vTaskDelay() interact with your timer? You could use vTaskDelayUntil() to cause a task to run every 800ms. Alternatively if the function is short you could use a tick hook function in place of a task.

Dave.

RE: Interrumption problems

Posted by Nobody/Anonymous on April 16, 2007
Thanks so much for your help, it looks really fine!!!

I found example for the vtaskdelayuntil:

void vTaskFunction( void * pvParameters )
{
portTickType xLastWakeTime;
const portTickType xFrequency = 10;

// Initialise the xLastWakeTime variable with the current time.
xLastWakeTime = xTaskGetTickCount();
for( ;; )
{
// Wait for the next cycle.
vTaskDelayUntil( &xLastWakeTime, xFrequency );

// Perform action here.
}
}

and also it said that we can use the constant portTICK_RATE_MS to calculate real time..... but i only found this constant:

#define portTICK_RATE_HZ ( ( portTickType ) 400 )

so i can use it for calculation 800ms? or can I say that my const portTickType xFrequency = 0.800;....

Thanks so much for your help!!!...i can't understand the relation betwen ticks and constant... thanks again for your help...

Moneditas