Documentos de Académico
Documentos de Profesional
Documentos de Cultura
os_tsk_pass
La funcin os_tsk_pass le da el control a la siguiente tarea de la misma prioridad
que se encuentre en estado listo. Si no hay tarea de la misma prioridad en
espera, la tarea en ejecucin continua corriendo y no ocurre un cambio de tarea a
ejecutar. No requiere parmetros y no devuelve ningn valor
os_tsk_self
La function os_tsk_self devuelve el task identifier number (TID) de la actual
tarea en ejecucin. No necesita parmetros.
os_evt_wait_or
La funcin os_evt_wait_or espera a que uno de los eventos especificados en las
wait_flags se produzca. La funcin slo espera en eventos cuyas banderas
correspondientes se han puesto a 1 en el parmetro de wait_flags. La funcin
puede esperar un mximo de 16 eventos diferentes. Se puede utilizar el
argumento de tiempo de espera para especificar la longitud de tiempo despus del
cual la funcin debe devolver un valor incluso si no se da ninguna de los eventos.
Se puede utilizar cualquier valor de tiempo de espera con la excepcin de
0xFFFF , que se puede utilizar para especificar un tiempo de espera indefinida . La
unidad de medida del argumento de que el tiempo ha caducado es el nmero de
intervalos de sistema.
La funcin os_evt_wait_or retorna cuando se ha producido al menos uno de los
eventos especificados en los wait_flags o cuando expira el tiempo de espera.
La funcin os_evt_wait_or devuelve un valor para indicar si se produjo un evento o
el tiempo de espera caducado.
Valor
Descripcin
devuelto
OS_R_EVT
OS_R_TMO
os_evt_wait_and
La funcin os_evt_wait_or espera a que todos los eventos especificados en las
wait_flags se produzcan. La funcin slo espera en eventos cuyas banderas
correspondientes se han puesto a 1 en el parmetro de wait_flags. La funcin
puede esperar un mximo de 16 eventos diferentes. Se puede utilizar el
argumento de tiempo de espera para especificar la longitud de tiempo despus del
cual la funcin debe devolver un valor incluso si no se da ninguna de los eventos.
Se puede utilizar cualquier valor de tiempo de espera con la excepcin de
0xFFFF , que se puede utilizar para especificar un tiempo de espera indefinida . La
unidad de medida del argumento de que el tiempo ha caducado es el nmero de
intervalos de sistema.
La funcin os_evt_wait_or retorna cuando se han producido todos los eventos
especificados en los wait_flags o cuando expira el tiempo de espera.
os_dly_wait
La funcin os_dly_wait detiene la tarea llamada. El parmetro de DELAY_TIME
especifica la duracin de la pausa y se mide en nmero de intervalos del sistema o
ciclos de clock . Puede establecer el DELAY_TIME a cualquier valor entre 1 y
0xFFFE .
La funcin os_dly_wait no devuelve ningn valor.
2)Event flag o en espaol bandera de eventos es un bit que se active
automticamente cuando el contador del registro llega a 0. Si la interrupcion de
tiempo (registro) est habilitada. La bandera se limpia cuando se escribe 1 en
ella. Cabe recalcar que escribir un 0 en el bit de la bandera de eventos, o escribir
un 1 cuando el timer event no est activado no tiene ningn efecto por lo que
hay que esperar que este activado para limpiar y que la bandera sea til de nuevo.
Las banderas se usan para saber cuando ha terminado un evento que puede ser
de cuenta,etc y en base a esa informacin poder tomar una decisin de la
siguiente tarea a ejecutar, mayormente se usa en condicionales o para romper
bucles
#include <RTL.h>
OS_TID id1, id2, id3, id4;
unsigned int counter1;
unsigned int counter2;
__task void task1 (void);
__task void task2 (void);
__task void task1 (void) {
id1 = os_tsk_self ();
os_tsk_prio_self (3);
id2 = os_tsk_create (task2, 4);
while (1) {
counter1++;
}
}
__task void task2 (void) {
while (1) {
counter2++;
}
}
int main (void) {
os_sys_init (task1);
}
3)
while (1) {
counter1++;
id2 = os_tsk_create (task2,(counter1+3));
}
}
}
}
Asumiendo que ambos contadores estn inicializados en 0, dichas modificaciones
harn que se incremente counter2 y luego modificando las prioridades vaya a la
funcin task1 y se incremente counter1 y luego lo mismo a counter2 y asi ambos
sern incrementados.