Ejemplo n.º 1
0
void 
fire_sonar(void)
{
	for(;;){
		trigger_sonar(FRONT);
		Task_Next();
		trigger_sonar(RIGHT);
		Task_Next();
		trigger_sonar(LEFT);
		Task_Next();
	}
}
Ejemplo n.º 2
0
void
listen_sonar(void)
{
	for(;;)
	{
	    s_forward= read_distance();
	    Task_Next();
	    s_right = read_distance();
	    Task_Next();
	    s_left = read_distance();
	    Task_Next();
	}
}
Ejemplo n.º 3
0
void sonarTask(void) {
	while (true) {
		sonarMeasureDistance();

		Task_Next();
	}
}
Ejemplo n.º 4
0
void task2(void) {
	for (;;) {
		digitalWrite(ONBOARD_LED, LOW);
		Serial.println("off");
		servoSet(900);

		Task_Next();
	}
}
Ejemplo n.º 5
0
void task1(void) {
	for (;;) {
		digitalWrite(ONBOARD_LED, HIGH);
		Serial.println("on");
		analogWrite(9, 100);

		Task_Next();
	}
}
Ejemplo n.º 6
0
Archivo: RTOS.c Proyecto: sovay/rtos3
void blinkLEDs(void)
{
	for (;;)
	{
		_delay_ms(500);
		PORTB = ~PORTB;
		Task_Next();
	}
}
Ejemplo n.º 7
0
void
sendRadio(void){
    for(;;){
        sendMovements(r_duty,l_duty,r_dir,r_duty);
        reportToBase(r_speed,l_speed, s_forward, s_right, s_left);
        send ++;
        if(send == 3)
            Event_Signal(stop);
        
        Task_Next();
    }
}
Ejemplo n.º 8
0
void generic_task(void)
{
    int arg = 0;
    arg = Task_GetArg();
    
    for(;;)
    {
        add_to_trace(arg);
        
        Task_Next();
    }
}
Ejemplo n.º 9
0
/**  
  * \param s an Service descriptor
  * \param v pointer to memory where the received value will be written
  *
  * The calling task waits for the next published value associated with service "s".
  * More than one task may wait for a service. When a new value "v" is published to
  * "s", all waiting tasks resume and obtain the same value. 
  */
void Service_Subscribe( SERVICE *s, int16_t *v ) {
	if(cur_task->level != PERIODIC) {
		enqueue(&s->list_of_tasks_who_are_subscribed, cur_task);
		cur_task->state = WAITING;
		Task_Next();
		cur_task->state = RUNNING;
		*v = s->data;
	} else {
		error_msg = ERR_RUN_7_PERIODIC_ATTEMPTED_SUBSCRIBE;
		OS_Abort();
	}
}
Ejemplo n.º 10
0
void controlTask(void) {
	while (true) {
		if (ctrlDivider == 0)
		{
			control();
		}

		ctrlDivider++;

		if (ctrlDivider >= 4)
		{
			ctrlDivider = 0;
		}

		Task_Next();
	}
}
Ejemplo n.º 11
0
void actuateTask(void) {
	while (true) {
		if (actuateDivider == 0)
		{
			actuate();
		}

		actuateDivider++;

		if (actuateDivider >= 4)
		{
			actuateDivider = 0;
		}

		Task_Next();
	}
}
Ejemplo n.º 12
0
void generic_task(void)
{
    int arg = 0;
    arg = Task_GetArg();

    for(;;)
    {
        add_to_trace(arg);

        if(trace_counter >= TRACE_ARRAY_SIZE)
        {
            Event_Signal(print_event);
        }

        Task_Next();
    }
}