Exemplo n.º 1
0
void *test8_thread4(void* ptr) {
    printf("Task 4: I am going to force some interrupts\n");
    
    printf("Task4: Registering ISR's for INT0, INT1, INT2 and INT3\n");
    Pr_IRQManager::Install(test8_handler, INT0);
    Pr_IRQManager::Install(test8_handler, INT1);
    Pr_IRQManager::Install(test8_handler, INT2);
    Pr_IRQManager::Install(test8_handler, INT3);
    
    
    printf("Task 4: forcing the INT0 at 2.0 time\n");
    Pr_DelayAt(Pr_Time(2.0f) += Test8.start_time);
    Pr_IRQManager::Force((INT0 - 0x10));

    printf("Task 4: forcing the INT1 at 4.0 time\n");
    Pr_DelayAt(Pr_Time(4.0f) += Test8.start_time);
    Pr_IRQManager::Force((INT1 - 0x10));

    printf("Task 4: forcing the INT2 at 6.5 time\n");
    Pr_DelayAt(Pr_Time(6.5f) += Test8.start_time);
    Pr_IRQManager::Force((INT2 - 0x10));

    printf("Task 4: forcing the INT3 at 7.0 time\n");
    Pr_DelayAt(Pr_Time(7.0f) += Test8.start_time);
    Pr_IRQManager::Force((INT3 - 0x10));

    printf("Task 4: End\n");
    
    Pr_IRQManager::Restore(INT0);
    Pr_IRQManager::Restore(INT1);
    Pr_IRQManager::Restore(INT2);
    Pr_IRQManager::Restore(INT3);  

    return NULL;
}
Exemplo n.º 2
0
void *test1_thread1(void *ptr){


    printf("Task 2: Begin\n");
    
    printf("Task 2: Delay at 2.5\n");
    
    Pr_DelayAt(Pr_Time(2.5) += Test1.start_time);
    
    printf("Task 2: This must be the message 3\n");
    
    semrec[0]->Wait();
    
    printf("Task 2: This must be the Message 4\n");
    
    task[1]->SetMaxPrioMsg(EDROOMprioHigh);
    
    task[0]->SetMaxPrioMsg(EDROOMprioVeryHigh);
    
    semrec[0]->Signal();
    
    printf("Task 2: This must be the Message 6\n");
    
    semrec[0]->Wait();
    
    task[1]->RestorePrioMsg();
    
    semrec[0]->Signal();
    
    printf("Task 2: This must be the Message 8\n");
    return NULL;   
}
Exemplo n.º 3
0
void *test1_thread2(void *ptr){

    printf("Task 3: Begin\n");
    
    printf("Task 3: Delay at 2.0\n");
     
    Pr_DelayAt(Pr_Time(2.0) += Test1.start_time);
    
    printf("Task 3: Waits the semaphore\n");
    
    semrec[0]->Wait();
    
    printf("Task 3: This must be the message 2\n");
       
    printf("Task 3: Decrease my priority\n");
    
    task[2]->SetPriority(EDROOMprioVeryLow);
    
    printf("Task 3: Signals the semaphore\n");
    
    semrec[0]->Signal();
    
    printf("Task 3: This must be the last message\n");
    
    Test1.End();
    return NULL;
}
Exemplo n.º 4
0
void *test1_thread0(void *ptr){

    printf("Task 1: Begin\n");
    
    semrec[0]->Wait();
    
    printf("Task 1: Delay at 2.5\n");
    
    Pr_DelayAt(Pr_Time(2.5) += Test1.start_time);
    
    printf("Task 1: This must be the Message 1\n");
    
    semrec[0]->Signal();
    
    printf("Task 1: This must be the Message 5\n");
    
    semrec[0]->Wait();
    
    task[1]->SetMaxPrioTmp(EDROOMprioURGENT);
    
    semrec[0]->Signal();
    
    printf("Task 1: This must be the Message 7\n");
    return NULL; 
}
void	CCAvoidObstacles::EDROOMTopContext::FProgNextDetection()

{
   //Define interval
  Pr_Time interval;
interval=Pr_Time(0,500000);
   //Program relative timer 
   Timer.InformIn( interval ); 
}