void Task_P2()
{   
    Event_Signal(evt);

    for(;;){
    }
}
void Task_P1()
{
    Event_Signal(evt);

    Task_Sleep(100);
    for(;;){
    }
}
示例#3
0
void Pong()
{
	for(;;){
		PORTA|=(1<<PA1);
		PORTA&=~(1<<PA1);
		Task_Sleep(100);
		Event_Signal(e);
		Task_Yield();
	}
}
示例#4
0
/** 
 * Add a number to the trace array and increment the trace counter
 * 
 * @param number unisigned integer to add
 */
void add_to_trace(uint16_t number)
{
    if (trace_counter < TRACE_ARRAY_SIZE)
    {
        trace_array[trace_counter] = number;
        trace_counter++;
    }
    else
    {
        Event_Signal(print_event);        
    }
}
示例#5
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();
    }
}
示例#6
0
void Task_P2(){
    PORTB   = 0x20;
    _delay_ms(10);
    PORTB   = 0x00;
    
    Task_Sleep(20); // sleep 2000ms

    PORTB   = 0x20;
    _delay_ms(10);
    PORTB   = 0x00;

    Event_Signal(evt);
    for(;;);
}
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();
    }
}
示例#8
0
void Task_1() {
	//4. Signal to Task_2 waiting on blink_increment
	Event_Signal(blink_increment);

	//8. Run and increment the blinks
	int i;
	for(i = 0; i<blinks; i++) {
		PORTB = 0x20;
	    _delay_ms(500);
	    PORTB = 0x00;
	    _delay_ms(500);
	}
	blinks++;

	//9. Create Task_2
	Task_Create(Task_2, 0, 0);
	
	//10. Terminate the task, restarting the loop at Task_2
	Task_Terminate();
}
void Task_P2(int parameter)
{
    Task_Sleep(20); // sleep 200ms
    Event_Signal(evt);
    for(;;);
}