Esempio n. 1
0
void task(void *arg)
{
    int err = 0;

    rt_printf("Task started. This is computer 1\n");

    if(run == 0) err = rt_task_set_periodic(NULL, TM_NOW, PERIOD);
    if(err != 0)  rt_printf("scheduling task filed with err %d: %s\n", err), strerror(-err);

    outb(inb(0x378) | 0x01, 0x378); //set D0 HIGH
    
    while(run<NUMRUNS){
      RTIME s = rt_timer_read();
      //set D0 LOW and HIGH again
      outb(inb(0x378) & 0xfe, 0x378);
      outb(inb(0x378) | 0x01, 0x378);
      //wait for respons:
      rt_intr_wait(&keypress, TM_INFINITE);
      diffs[run] = rt_timer_read() - s;
      run++;
      rt_task_wait_period(NULL);
    }
    rt_printf("Done listening, saving to file\n");
    write_RTIMES(FILEO, NUMRUNS, diffs);
    rt_printf("Done\n");
}
Esempio n. 2
0
File: ex10a.c Progetto: jd7h/des
//startup code
void startup()
{
    //begin task
    rt_printf("Creating timertask...\n");
    rt_task_create(&timertask,"timertask",0,50,T_JOINABLE);
    rt_printf("Setting period...\n");
    rt_task_set_periodic(&timertask,TM_NOW,PERIOD);
    rt_task_start(&timertask,&timer,NULL);

    /* debug code
    int i;
    for(i = 0;i<MEASUREMENTS;i++)
    {
    	rt_printf("%d\t%u\n",i,exec_times[i]);
    }
    */
    rt_task_join(&timertask);
    compute_differences();
    write_RTIMES("time_diff.csv",MEASUREMENTS-1,exec_diff);
}