AnsweredAssumed Answered

How do you keep a task that is normally on a 10ms interval from timing out?

Question asked by RICK BOURGEOIS on May 5, 2011
Latest reply on May 10, 2011 by tr9

I have two tasks that are on a 10 ms time slice.

My understanding is that after 10ms each task will defer to the highest priority task.

Here is my template:

 

 

const TASK_TEMPLATE_STRUCT MQX_template_list[] ={    /* Task Index, Function,   Stack,  Priority,    Name,  Attributes, Param,  Time Slice */{TELNET_TASK_ID, uTelnet_task,   1500, 10, "nc500_Telnet" , 0,   0,      0 },{HTTP_TASK_ID,   uhttp_task,   2500, 7,   "http" , 0,  0,      0 },{ARCNET_TASK_ID, uArcnet_task,   512, 9,   "Arcnet" , 0,  0,      0 },{SOCKET_TASK_ID,   uSocket_task,   1000, 7,   "Socket" , 0,   0,      0 },{LIF_TASK_ID, uLif_task,   700, 10,   "Lif" , 0,  0,      0 },{FLASH_UP_TASK_ID, uFlash_Up_task, 1000, 10,  "Flash_up" , MQX_AUTO_START_TASK,  0,      0 },{VNC_TASK_ID, uVNC_task, 3000, 10,   "VNC",   0,  0, 10},{A2D_TASK_ID, uA2D_task, 1000, 10, "A2D",   0,  0, 10},    {0,     0,    0,  0,   0,   0,      0,  0 }};

 My "VNC" and "A2D" tasks use a time slice of 10ms. My "Arcnet" task has a priority of 9 and "VNC  has a priority of 10.

During a memory write operation that takes longer than 10 ms to complete while in my VNC task the "Arcnet " task switches on and changes the chip select on my hardware and when I return to the VNC task I am no longer selecting the correct memory chip.

I have tried disabling interrupts during big memory operations but didnt acheive good results.

I have also tried _sched_set_rr_interval(_task_get_id(),0);

but it didnt work also.

 

 

 

 

Outcomes