Example #1
0
void nrk_create_taskset ()
{
  //priority of all 4 tasks was initially (1-4): 
  //GridEye, GPS, Task 1, Task 3
  TaskOne.task = Task1;
  nrk_task_set_stk( &TaskOne, Stack1, NRK_APP_STACKSIZE);
  TaskOne.prio = 2;
  TaskOne.FirstActivation = TRUE;
  TaskOne.Type = BASIC_TASK;
  TaskOne.SchType = PREEMPTIVE;
  TaskOne.period.secs = 0;
  TaskOne.period.nano_secs = 10 * NANOS_PER_MS;//changed from 5 to 150
  TaskOne.cpu_reserve.secs = 0;
  TaskOne.cpu_reserve.nano_secs = 0 * NANOS_PER_MS;
  TaskOne.offset.secs = 0;
  TaskOne.offset.nano_secs = 0;
  nrk_activate_task (&TaskOne);

  TASK_GPS.task = TaskGPS;
  nrk_task_set_stk( &TASK_GPS, StackGPS, NRK_APP_STACKSIZE);
  TASK_GPS.prio = 3;
  TASK_GPS.FirstActivation = TRUE;
  TASK_GPS.Type = BASIC_TASK;
  TASK_GPS.SchType = PREEMPTIVE;
  TASK_GPS.period.secs = 0;
  TASK_GPS.period.nano_secs = 10 * NANOS_PER_MS; //change from 50 to 150
  TASK_GPS.cpu_reserve.secs = 0;
  TASK_GPS.cpu_reserve.nano_secs = 0;
  TASK_GPS.offset.secs = 0;
  TASK_GPS.offset.nano_secs = 0;
  nrk_activate_task (&TASK_GPS);

  TaskThree.task = Task3;
  nrk_task_set_stk( &TaskThree, Stack3, NRK_APP_STACKSIZE);
  TaskThree.prio = 2;
  TaskThree.FirstActivation = TRUE;
  TaskThree.Type = BASIC_TASK;
  TaskThree.SchType = PREEMPTIVE;
  TaskThree.period.secs = 0;
  TaskThree.period.nano_secs = 10 * NANOS_PER_MS;//changed from 250 to 150
  TaskThree.cpu_reserve.secs = 1;
  TaskThree.cpu_reserve.nano_secs = 0;
  TaskThree.offset.secs = 0;
  TaskThree.offset.nano_secs = 0;
  nrk_activate_task (&TaskThree);

 TASK_GRIDEYE.task = TaskGridEYE;
  nrk_task_set_stk( &TASK_GRIDEYE, StackGridEYE, NRK_APP_STACKSIZE);
  TASK_GRIDEYE.prio = 1;
  TASK_GRIDEYE.FirstActivation = TRUE;
  TASK_GRIDEYE.Type = BASIC_TASK;
  TASK_GRIDEYE.SchType = PREEMPTIVE;
  TASK_GRIDEYE.period.secs = 0;
  TASK_GRIDEYE.period.nano_secs = 150*NANOS_PER_MS; //*NANOS_PER_MS; //changed 50 to 150
  TASK_GRIDEYE.cpu_reserve.secs = 0;
  TASK_GRIDEYE.cpu_reserve.nano_secs =  0;//200*NANOS_PER_MS;
  TASK_GRIDEYE.offset.secs = 0;
  TASK_GRIDEYE.offset.nano_secs= 0;
  nrk_activate_task (&TASK_GRIDEYE);
}
Example #2
0
void
nrk_create_taskset()
{
  TaskOne.task = print_sensor_readings;
  nrk_task_set_stk( &TaskOne, Stack1, NRK_APP_STACKSIZE);
  TaskOne.prio = 1;
  TaskOne.FirstActivation = TRUE;
  TaskOne.Type = BASIC_TASK;
  TaskOne.SchType = PREEMPTIVE;
  TaskOne.period.secs = 2;
  TaskOne.period.nano_secs = 0;
  TaskOne.cpu_reserve.secs = 0;
  TaskOne.cpu_reserve.nano_secs = 0;
  TaskOne.offset.secs = 0;
  TaskOne.offset.nano_secs= 0;
  nrk_activate_task (&TaskOne);

  nrk_task_set_entry_function( &TaskTwo, collect_Audio_Data);
  nrk_task_set_stk( &TaskTwo, Stack2, NRK_APP_STACKSIZE);
  TaskTwo.prio = 2;
  TaskTwo.FirstActivation = TRUE;
  TaskTwo.Type = BASIC_TASK;
  TaskTwo.SchType = PREEMPTIVE;
  TaskTwo.period.secs = 2;
  TaskTwo.period.nano_secs = 0;
  TaskTwo.cpu_reserve.secs = 0;
  TaskTwo.cpu_reserve.nano_secs = 0;
  TaskTwo.offset.secs = 0;
  TaskTwo.offset.nano_secs= 0;
  nrk_activate_task (&TaskTwo);
}
Example #3
0
void
nrk_create_taskset()
{
  TaskOne.task = rx_task;
  nrk_task_set_stk( &TaskOne, Stack1, NRK_APP_STACKSIZE);
  TaskOne.prio = 1;
  TaskOne.FirstActivation = TRUE;
  TaskOne.Type = BASIC_TASK;
  TaskOne.SchType = PREEMPTIVE;
  TaskOne.period.secs = 10;
  TaskOne.period.nano_secs = 250*NANOS_PER_MS;
  TaskOne.cpu_reserve.secs = 0;
  TaskOne.cpu_reserve.nano_secs =  50*NANOS_PER_MS;
  TaskOne.offset.secs = 0;
  TaskOne.offset.nano_secs= 0;
  nrk_activate_task (&TaskOne);

  TaskTwo.task = tx_task;
  nrk_task_set_stk( &TaskTwo, Stack2, NRK_APP_STACKSIZE);
  TaskTwo.prio = 2;
  TaskTwo.FirstActivation = TRUE;
  TaskTwo.Type = BASIC_TASK;
  TaskTwo.SchType = PREEMPTIVE;
  TaskTwo.period.secs = 0;
  TaskTwo.period.nano_secs = 500*NANOS_PER_MS;
  TaskTwo.cpu_reserve.secs = 0;
  TaskTwo.cpu_reserve.nano_secs = 100*NANOS_PER_MS;
  TaskTwo.offset.secs = 0;
  TaskTwo.offset.nano_secs= 0;
  nrk_activate_task (&TaskTwo);


}
Example #4
0
File: main.c Project: nycdarren/mrk
void nrk_create_taskset ()
{
    nrk_task_set_entry_function (&rx_task_info, rx_task);
    nrk_task_set_stk (&rx_task_info, rx_task_stack, NRK_APP_STACKSIZE);
    rx_task_info.prio = 1;
    rx_task_info.FirstActivation = TRUE;
    rx_task_info.Type = BASIC_TASK;
    rx_task_info.SchType = PREEMPTIVE;
    rx_task_info.period.secs = 0;
    rx_task_info.period.nano_secs = 250 * NANOS_PER_MS;
    rx_task_info.cpu_reserve.secs = 0;
    rx_task_info.cpu_reserve.nano_secs = 100 * NANOS_PER_MS;
    rx_task_info.offset.secs = 0;
    rx_task_info.offset.nano_secs = 0;
    nrk_activate_task (&rx_task_info);

    nrk_task_set_entry_function (&tx_task_info, tx_task);
    nrk_task_set_stk (&tx_task_info, tx_task_stack, NRK_APP_STACKSIZE);
    tx_task_info.prio = 1;
    tx_task_info.FirstActivation = TRUE;
    tx_task_info.Type = BASIC_TASK;
    tx_task_info.SchType = PREEMPTIVE;
    tx_task_info.period.secs = 0;
    tx_task_info.period.nano_secs = 250 * NANOS_PER_MS;
    tx_task_info.cpu_reserve.secs = 0;
    tx_task_info.cpu_reserve.nano_secs = 100 * NANOS_PER_MS;
    tx_task_info.offset.secs = 0;
    tx_task_info.offset.nano_secs = 0;
    nrk_activate_task (&tx_task_info);

    tdma_task_config ();

}
Example #5
0
void nrk_create_taskset()
{
  type_task_snd.task = task_snd;
  nrk_task_set_stk( &type_task_snd, stack_task_snd, NRK_APP_STACKSIZE);
  type_task_snd.prio = SND_TASK_PRIO;
  type_task_snd.FirstActivation = TRUE;
  type_task_snd.Type = BASIC_TASK;
  type_task_snd.SchType = PREEMPTIVE;
  type_task_snd.period.secs = 0;
  type_task_snd.period.nano_secs = SND_TASK_PERIOD_ms*NANOS_PER_MS;
  type_task_snd.cpu_reserve.secs = 0;
  type_task_snd.cpu_reserve.nano_secs = 0; //SND_TASK_RESERVE_ms*NANOS_PER_MS;
  type_task_snd.offset.secs = 0;
  type_task_snd.offset.nano_secs= 0;
  nrk_activate_task (&type_task_snd);

  type_task_rcv.task = task_rcv;
  nrk_task_set_stk( &type_task_rcv, stack_task_rcv, NRK_APP_STACKSIZE);
  type_task_rcv.prio = RCV_TASK_PRIO;
  type_task_rcv.FirstActivation = TRUE;
  type_task_rcv.Type = BASIC_TASK;
  type_task_rcv.SchType = PREEMPTIVE;
  type_task_rcv.period.secs = 0;
  type_task_rcv.period.nano_secs = RCV_TASK_PERIOD_ms*NANOS_PER_MS;
  type_task_rcv.cpu_reserve.secs = 0;
  type_task_rcv.cpu_reserve.nano_secs = 0; //RCV_TASK_RESERVE_ms*NANOS_PER_MS;
  type_task_rcv.offset.secs = 0;
  type_task_rcv.offset.nano_secs= 0;
  nrk_activate_task (&type_task_rcv);
}
Example #6
0
void nrk_create_taskset ()
{


    RX_TASK.task = rx_task;
    nrk_task_set_stk (&RX_TASK, rx_task_stack, NRK_APP_STACKSIZE);
    RX_TASK.prio = 2;
    RX_TASK.FirstActivation = TRUE;
    RX_TASK.Type = BASIC_TASK;
    RX_TASK.SchType = PREEMPTIVE;
    RX_TASK.period.secs = 1;
    RX_TASK.period.nano_secs = 0;
    RX_TASK.cpu_reserve.secs = 1;
    RX_TASK.cpu_reserve.nano_secs = 0;
    RX_TASK.offset.secs = 0;
    RX_TASK.offset.nano_secs = 0;
    nrk_activate_task (&RX_TASK);

    TX_TASK.task = tx_task;
    nrk_task_set_stk (&TX_TASK, tx_task_stack, NRK_APP_STACKSIZE);
    TX_TASK.prio = 3;
    TX_TASK.FirstActivation = TRUE;
    TX_TASK.Type = BASIC_TASK;
    TX_TASK.SchType = PREEMPTIVE;
    TX_TASK.period.secs = 1;
    TX_TASK.period.nano_secs = 0;
    TX_TASK.cpu_reserve.secs = 1;
    TX_TASK.cpu_reserve.nano_secs = 0;
    TX_TASK.offset.secs = 0;
    TX_TASK.offset.nano_secs = 0;
    nrk_activate_task (&TX_TASK);

}
Example #7
0
void
nrk_create_taskset()
{
  TaskOne.task = Task1;
  TaskOne.Ptos = (void *) &Stack1[NRK_APP_STACKSIZE];
  TaskOne.Pbos = (void *) &Stack1[0];
  TaskOne.prio = 1;
  TaskOne.FirstActivation = TRUE;
  TaskOne.Type = BASIC_TASK;
  TaskOne.SchType = PREEMPTIVE;
  TaskOne.period.secs = 0;
  TaskOne.period.nano_secs = 250*NANOS_PER_MS;
  TaskOne.cpu_reserve.secs = 0;
  TaskOne.cpu_reserve.nano_secs =  50*NANOS_PER_MS;
  TaskOne.offset.secs = 0;
  TaskOne.offset.nano_secs= 0;
  nrk_activate_task (&TaskOne);

  TaskTwo.task = Task2;
  TaskTwo.Ptos = (void *) &Stack2[NRK_APP_STACKSIZE];
  TaskTwo.Pbos = (void *) &Stack2[0];
  TaskTwo.prio = 2;
  TaskTwo.FirstActivation = TRUE;
  TaskTwo.Type = BASIC_TASK;
  TaskTwo.SchType = PREEMPTIVE;
  TaskTwo.period.secs = 3;
  TaskTwo.period.nano_secs = 0;
  TaskTwo.cpu_reserve.secs = 0;
  TaskTwo.cpu_reserve.nano_secs = 100*NANOS_PER_MS;
  TaskTwo.offset.secs = 0;
  TaskTwo.offset.nano_secs= 0;
  nrk_activate_task (&TaskTwo);


}
Example #8
0
void nrk_create_taskset()
{
	TTaskSnd.task = TaskSnd;
	TTaskSnd.Ptos = (void *) &StackTaskSnd[NRK_APP_STACKSIZE-1];
	TTaskSnd.Pbos = (void *) &StackTaskSnd[0];
	TTaskSnd.prio = SND_TASK_PRIO;
	TTaskSnd.FirstActivation = TRUE;
	TTaskSnd.Type = BASIC_TASK;
	TTaskSnd.SchType = PREEMPTIVE;
	TTaskSnd.period.secs = 0;
	TTaskSnd.period.nano_secs = SND_TASK_PERIOD_ms*NANOS_PER_MS;
	TTaskSnd.cpu_reserve.secs = 0;
	TTaskSnd.cpu_reserve.nano_secs =  SND_TASK_RESERVE_ms*NANOS_PER_MS;
	TTaskSnd.offset.secs = 0;
	TTaskSnd.offset.nano_secs= 0;
	nrk_activate_task (&TTaskSnd);

	TTaskRcv.task = TaskRcv;
	TTaskRcv.Ptos = (void *) &StackTaskRcv[NRK_APP_STACKSIZE-1];
	TTaskRcv.Pbos = (void *) &StackTaskRcv[0];
	TTaskRcv.prio = RCV_TASK_PRIO;
	TTaskRcv.FirstActivation = TRUE;
	TTaskRcv.Type = BASIC_TASK;
	TTaskRcv.SchType = PREEMPTIVE;
	TTaskRcv.period.secs = 0;
	TTaskRcv.period.nano_secs = RCV_TASK_PERIOD_ms*NANOS_PER_MS;
	TTaskRcv.cpu_reserve.secs = 0;
	TTaskRcv.cpu_reserve.nano_secs =  RCV_TASK_RESERVE_ms*NANOS_PER_MS;
	TTaskRcv.offset.secs = 0;
	TTaskRcv.offset.nano_secs= 0;
	nrk_activate_task (&TTaskRcv);
}
Example #9
0
File: main.c Project: vishnudh/RTOS
void
nrk_create_taskset()
{
  nrk_task_set_entry_function( &TaskOne, Task1);
  nrk_task_set_stk( &TaskOne, Stack1, NRK_APP_STACKSIZE);
  TaskOne.prio = 1;
  TaskOne.FirstActivation = TRUE;
  TaskOne.Type = BASIC_TASK;
#ifdef NRK_EDF
  TaskOne.SchType = EDF;
#else
TaskOne.SchType = PREEMPTIVE;
#endif
  TaskOne.period.secs = 6;
  TaskOne.period.nano_secs = 0*NANOS_PER_MS;
  TaskOne.cpu_reserve.secs = 6;
  TaskOne.cpu_reserve.nano_secs = 0*NANOS_PER_MS;
  TaskOne.offset.secs = 0;
  TaskOne.offset.nano_secs= 0;
  nrk_activate_task (&TaskOne);

  nrk_task_set_entry_function( &TaskTwo, Task2);
  nrk_task_set_stk( &TaskTwo, Stack2, NRK_APP_STACKSIZE);
  TaskTwo.prio = 2;
  TaskTwo.FirstActivation = TRUE;
  TaskTwo.Type = BASIC_TASK;
#ifdef NRK_EDF
  TaskOne.SchType = EDF;
#else
TaskOne.SchType = PREEMPTIVE;
#endif

TaskTwo.period.secs = 12;
  TaskTwo.period.nano_secs = 0*NANOS_PER_MS;
  TaskTwo.cpu_reserve.secs = 12;
  TaskTwo.cpu_reserve.nano_secs = 0*NANOS_PER_MS;
  TaskTwo.offset.secs = 0;
  TaskTwo.offset.nano_secs= 0;
  nrk_activate_task (&TaskTwo);

  nrk_task_set_entry_function( &TaskThree, Task3);
  nrk_task_set_stk( &TaskThree, Stack3, NRK_APP_STACKSIZE);
  TaskThree.prio = 3;
  TaskThree.FirstActivation = TRUE;
  TaskThree.Type = BASIC_TASK;
#ifdef NRK_EDF
  TaskOne.SchType = EDF;
#else
TaskOne.SchType = PREEMPTIVE;
#endif
  TaskThree.period.secs = 9;
  TaskThree.period.nano_secs = 0;
  TaskThree.cpu_reserve.secs = 8;
  TaskThree.cpu_reserve.nano_secs = 0*NANOS_PER_MS;
  TaskThree.offset.secs = 0;
  TaskThree.offset.nano_secs= 0;
  nrk_activate_task (&TaskThree);
  return;
}
Example #10
0
void nrk_create_taskset ()
{


  RX_TASK.task = rx_task;
  nrk_task_set_stk( &RX_TASK, rx_task_stack, NRK_APP_STACKSIZE);
  RX_TASK.prio = 3;
  RX_TASK.FirstActivation = TRUE;
  RX_TASK.Type = BASIC_TASK;
  RX_TASK.SchType = PREEMPTIVE;
  RX_TASK.period.secs = 0;
  RX_TASK.period.nano_secs = 500 *NANOS_PER_MS;
  RX_TASK.cpu_reserve.secs = 1;
  RX_TASK.cpu_reserve.nano_secs = 500 * NANOS_PER_MS;
  RX_TASK.offset.secs = 0;
  RX_TASK.offset.nano_secs = 0;
  nrk_activate_task (&RX_TASK);

  TX_TASK.task = tx_task;
  nrk_task_set_stk( &TX_TASK, tx_task_stack, NRK_APP_STACKSIZE);
  TX_TASK.prio = 2;
  TX_TASK.FirstActivation = TRUE;
  TX_TASK.Type = BASIC_TASK;
  TX_TASK.SchType = PREEMPTIVE;
  TX_TASK.period.secs = 1;
  TX_TASK.period.nano_secs = 0;
  TX_TASK.cpu_reserve.secs = 1;
  TX_TASK.cpu_reserve.nano_secs = 500 * NANOS_PER_MS;
  TX_TASK.offset.secs = 0;
  TX_TASK.offset.nano_secs = 0;
  nrk_activate_task (&TX_TASK);
  /*
  INTER_TX_TASK.task = inter_tx_task;
  nrk_task_set_stk( &INTER_TX_TASK, inter_tx_task_stack, NRK_APP_STACKSIZE);
  INTER_TX_TASK.prio = 2;
  INTER_TX_TASK.FirstActivation = TRUE;
  INTER_TX_TASK.Type = BASIC_TASK;
  INTER_TX_TASK.SchType = PREEMPTIVE;
  INTER_TX_TASK.period.secs = 1;
  INTER_TX_TASK.period.nano_secs = 0;
  INTER_TX_TASK.cpu_reserve.secs = 1;
  INTER_TX_TASK.cpu_reserve.nano_secs = 500 * NANOS_PER_MS;
  INTER_TX_TASK.offset.secs = 0;
  INTER_TX_TASK.offset.nano_secs = 0;
  nrk_activate_task (&INTER_TX_TASK);
*/
  printf ("Create done\r\n");
}
Example #11
0
void nrk_create_taskset ()
{


  RX_TASK.task = rx_task;
  nrk_task_set_stk (&RX_TASK, rx_task_stack, NRK_APP_STACKSIZE);
  RX_TASK.prio = 2;
  RX_TASK.FirstActivation = TRUE;
  RX_TASK.Type = BASIC_TASK;
  RX_TASK.SchType = PREEMPTIVE;
  RX_TASK.period.secs = 0;
  RX_TASK.period.nano_secs = 100 * NANOS_PER_MS;
  RX_TASK.cpu_reserve.secs = 0;
  RX_TASK.cpu_reserve.nano_secs = 0;
  RX_TASK.offset.secs = 0;
  RX_TASK.offset.nano_secs = 0;
  nrk_activate_task (&RX_TASK);

  TX_TASK.task = tx_task;
  nrk_task_set_stk (&TX_TASK, tx_task_stack, NRK_APP_STACKSIZE);
  TX_TASK.prio = 2;
  TX_TASK.FirstActivation = TRUE;
  TX_TASK.Type = BASIC_TASK;
  TX_TASK.SchType = PREEMPTIVE;
  TX_TASK.period.secs = 1;
  TX_TASK.period.nano_secs = 0;
  TX_TASK.cpu_reserve.secs = 0;
  TX_TASK.cpu_reserve.nano_secs = 500 * NANOS_PER_MS;
  TX_TASK.offset.secs = 0;
  TX_TASK.offset.nano_secs = 0;
  nrk_activate_task (&TX_TASK);

  nrk_task_set_entry_function( &SYNT_TASK_T, synt_task);
  nrk_task_set_stk( &SYNT_TASK_T, synt_task_stack, NRK_APP_STACKSIZE);
  SYNT_TASK_T.prio = 1;
  SYNT_TASK_T.FirstActivation = TRUE;
  SYNT_TASK_T.Type = BASIC_TASK;
  SYNT_TASK_T.SchType = PREEMPTIVE;
  SYNT_TASK_T.period.secs = 0;
  SYNT_TASK_T.period.nano_secs = 500*NANOS_PER_MS;
  SYNT_TASK_T.cpu_reserve.secs = 0;
  SYNT_TASK_T.cpu_reserve.nano_secs = 100*NANOS_PER_MS;
  SYNT_TASK_T.offset.secs = 0;
  SYNT_TASK_T.offset.nano_secs= 0;
  nrk_activate_task (&SYNT_TASK_T);


}
Example #12
0
uint8_t init_rftop(uint8_t priority)
{
    uint8_t num_tasks = 0;

    LOG("init: prio "); LOGP("%u\r\n", priority);

    discover_signal = nrk_signal_create();
    if (discover_signal == NRK_ERROR)
        ABORT("create sig: discover\r\n");

    num_tasks++;
    DISCOVER_TASK.task = discover_task;
    DISCOVER_TASK.Ptos = (void *) &discover_task_stack[STACKSIZE_DISCOVER - 1];
    DISCOVER_TASK.Pbos = (void *) &discover_task_stack[0];
    DISCOVER_TASK.prio = priority;
    DISCOVER_TASK.FirstActivation = TRUE;
    DISCOVER_TASK.Type = BASIC_TASK;
    DISCOVER_TASK.SchType = PREEMPTIVE;
    DISCOVER_TASK.period.secs = DISCOVER_TASK_PERIOD_S;
    DISCOVER_TASK.period.nano_secs = 0;
    DISCOVER_TASK.cpu_reserve.secs = 0;
    DISCOVER_TASK.cpu_reserve.nano_secs = 0;
    DISCOVER_TASK.offset.secs = 10;
    DISCOVER_TASK.offset.nano_secs = 0;
    nrk_activate_task (&DISCOVER_TASK);

    ASSERT(num_tasks == NUM_TASKS_RFTOP);
    return num_tasks;
}
Example #13
0
uint8_t init_periodic(uint8_t priority, periodic_func_t **funcs)
{
    uint8_t num_tasks = 0;

    LOG("init: prio "); LOGP("%u\r\n", priority);

    func_signal = nrk_signal_create();
    if (func_signal == NRK_ERROR)
        ABORT("create sig: func\r\n");

    functions = funcs;

    num_tasks++;
    PERIODIC_TASK.task = periodic_task;
    PERIODIC_TASK.Ptos = (void *) &periodic_task_stack[STACKSIZE_PERIODIC - 1];
    PERIODIC_TASK.Pbos = (void *) &periodic_task_stack[0];
    PERIODIC_TASK.prio = priority;
    PERIODIC_TASK.FirstActivation = TRUE;
    PERIODIC_TASK.Type = BASIC_TASK;
    PERIODIC_TASK.SchType = PREEMPTIVE;
    PERIODIC_TASK.period.secs = 0;
    PERIODIC_TASK.period.nano_secs = 0;
    PERIODIC_TASK.cpu_reserve.secs = 0;
    PERIODIC_TASK.cpu_reserve.nano_secs = 0;
    PERIODIC_TASK.offset.secs = 0;
    PERIODIC_TASK.offset.nano_secs = 0;
    nrk_activate_task (&PERIODIC_TASK);

    return num_tasks;
}
Example #14
0
void create_serial_task()
{
	SERIAL_TASK.task = serial_task;
	SERIAL_TASK.Ptos = (void *) &serial_task_stack[NRK_APP_STACKSIZE - 1];
	SERIAL_TASK.Pbos = (void *) &serial_task_stack[0];
	SERIAL_TASK.prio = 17;
	SERIAL_TASK.FirstActivation = TRUE;
	SERIAL_TASK.Type = BASIC_TASK;
	SERIAL_TASK.SchType = PREEMPTIVE;
	
	SERIAL_TASK.cpu_reserve.secs = 0;
	SERIAL_TASK.cpu_reserve.nano_secs = 200 * NANOS_PER_MS;  
	SERIAL_TASK.period.secs = 0;
	SERIAL_TASK.period.nano_secs = 250 * NANOS_PER_MS;
	   
  
  	SERIAL_TASK.offset.secs = 0;
  	SERIAL_TASK.offset.nano_secs= 0;
  	nrk_activate_task (&SERIAL_TASK);
  	
  	if(DEBUG_SR == 0)
  	{
  			nrk_kprintf(PSTR("Serial task activated\r\n"));
  	}
}
Example #15
0
void
nrk_create_taskset()
{
  nrk_task_set_entry_function( &TaskOne, Task_Accelorometer);
  nrk_task_set_stk( &TaskOne, Stack1, NRK_APP_STACKSIZE);
  TaskOne.prio = 1;
  TaskOne.FirstActivation = TRUE;
  TaskOne.Type = BASIC_TASK;
  TaskOne.SchType = PREEMPTIVE;
  TaskOne.period.secs = 0;
  TaskOne.period.nano_secs = 250*NANOS_PER_MS;
  TaskOne.cpu_reserve.secs = 0;
  TaskOne.cpu_reserve.nano_secs = 250*NANOS_PER_MS;
  TaskOne.offset.secs = 1;
  TaskOne.offset.nano_secs= 0;
  nrk_activate_task (&TaskOne);

  nrk_task_set_entry_function( &TaskTwo, Task_Gyro);
  nrk_task_set_stk( &TaskTwo, Stack2, NRK_APP_STACKSIZE);
  TaskTwo.prio = 2;
  TaskTwo.FirstActivation = TRUE;
  TaskTwo.Type = BASIC_TASK;
  TaskTwo.SchType = PREEMPTIVE;
  TaskTwo.period.secs = 0;
  TaskTwo.period.nano_secs = 250*NANOS_PER_MS;
  TaskTwo.cpu_reserve.secs = 0;
  TaskTwo.cpu_reserve.nano_secs = 250*NANOS_PER_MS;
  TaskTwo.offset.secs = 1;
  TaskTwo.offset.nano_secs= 0;
  nrk_activate_task (&TaskTwo);

  nrk_task_set_entry_function( &TaskThree, Task_Magneto);
  nrk_task_set_stk( &TaskThree, Stack3, NRK_APP_STACKSIZE);
  TaskThree.prio = 3;
  TaskThree.FirstActivation = TRUE;
  TaskThree.Type = BASIC_TASK;
  TaskThree.SchType = PREEMPTIVE;
  TaskThree.period.secs = 0;
  TaskThree.period.nano_secs = 250*NANOS_PER_MS;
  TaskThree.cpu_reserve.secs = 0;
  TaskThree.cpu_reserve.nano_secs = 0*NANOS_PER_MS;
  TaskThree.offset.secs = 1;
  TaskThree.offset.nano_secs= 0;
  nrk_activate_task (&TaskThree);
}
Example #16
0
File: main.c Project: nycdarren/mrk
void nrk_create_taskset ()
{
    TX_TASK.task = tx_task;
    nrk_task_set_stk (&TX_TASK, tx_task_stack, NRK_APP_STACKSIZE);
    TX_TASK.prio = 2;
    TX_TASK.FirstActivation = TRUE;
    TX_TASK.Type = BASIC_TASK;
    TX_TASK.SchType = PREEMPTIVE;
    TX_TASK.period.secs = 10;
    TX_TASK.period.nano_secs = 0;
    TX_TASK.cpu_reserve.secs = 1;
    TX_TASK.cpu_reserve.nano_secs = 500 * NANOS_PER_MS;
    TX_TASK.offset.secs = 0;
    TX_TASK.offset.nano_secs = 0;
    nrk_activate_task (&TX_TASK);

    RX_TASK.task = rx_task;
    nrk_task_set_stk (&RX_TASK, rx_task_stack, NRK_APP_STACKSIZE);
    RX_TASK.prio = 3;
    RX_TASK.FirstActivation = TRUE;
    RX_TASK.Type = BASIC_TASK;
    RX_TASK.SchType = PREEMPTIVE;
    RX_TASK.period.secs = 10;
    RX_TASK.period.nano_secs = 0;
    RX_TASK.cpu_reserve.secs = 1;
    RX_TASK.cpu_reserve.nano_secs = 500 * NANOS_PER_MS;
    RX_TASK.offset.secs = 0;
    RX_TASK.offset.nano_secs = 0;
    nrk_activate_task (&RX_TASK);

    CYCLING_TASK.task = cycling_task;
    nrk_task_set_stk(&CYCLING_TASK, cycling_task_stack, NRK_APP_STACKSIZE);
    CYCLING_TASK.prio = 1;
    CYCLING_TASK.FirstActivation = TRUE;
    CYCLING_TASK.Type = BASIC_TASK;
    CYCLING_TASK.SchType = PREEMPTIVE;
    CYCLING_TASK.period.secs = 0;
    CYCLING_TASK.period.nano_secs = 100 * NANOS_PER_MS;
    CYCLING_TASK.cpu_reserve.secs = 1;
    CYCLING_TASK.cpu_reserve.nano_secs = 50 * NANOS_PER_MS;
    CYCLING_TASK.offset.secs = 0;
    CYCLING_TASK.offset.nano_secs = 0;
    nrk_activate_task(&CYCLING_TASK);
}
Example #17
0
void create_network_layer_tasks()
{
  NL_RX_TASK.task = nl_rx_task;
  NL_RX_TASK.Ptos = (void *) &nl_rx_task_stack[NRK_APP_STACKSIZE - 1];
  NL_RX_TASK.Pbos = (void *) &nl_rx_task_stack[0];
  NL_RX_TASK.prio = 19;
  NL_RX_TASK.FirstActivation = TRUE;
  NL_RX_TASK.Type = BASIC_TASK;
  NL_RX_TASK.SchType = PREEMPTIVE;
  
  NL_RX_TASK.cpu_reserve.secs = 0;
  NL_RX_TASK.cpu_reserve.nano_secs = 700 * NANOS_PER_MS;  
  NL_RX_TASK.period.secs = 1;
  NL_RX_TASK.period.nano_secs = 0;
   
  
  NL_RX_TASK.offset.secs = 0;
  NL_RX_TASK.offset.nano_secs= 0;
  nrk_activate_task (&NL_RX_TASK);

/*****************************************************************************************/  
  NL_TX_TASK.task = nl_tx_task;
  NL_TX_TASK.Ptos = (void *) &nl_tx_task_stack[NRK_APP_STACKSIZE - 1];
  NL_TX_TASK.Pbos = (void *) &nl_tx_task_stack[0];
  NL_TX_TASK.prio = 18;
  NL_TX_TASK.FirstActivation = TRUE;
  NL_TX_TASK.Type = BASIC_TASK;
  NL_TX_TASK.SchType = PREEMPTIVE;
  
  NL_TX_TASK.cpu_reserve.secs = 0;
  NL_TX_TASK.cpu_reserve.nano_secs = 500 * NANOS_PER_MS;	
  NL_TX_TASK.period.secs = 1;
  NL_TX_TASK.period.nano_secs = 0;
  
  NL_TX_TASK.offset.secs = 0;
  NL_TX_TASK.offset.nano_secs= 0;
  nrk_activate_task (&NL_TX_TASK);

  if(DEBUG_NL == 2)
	nrk_kprintf(PSTR("create_network_layer_tasks(): Network layer task creation done\r\n"));
}
Example #18
0
void nrk_create_taskset ()
{
  TaskOne.task = Task1;
  nrk_task_set_stk( &TaskOne, Stack1, NRK_APP_STACKSIZE);
  TaskOne.prio = 1;
  TaskOne.FirstActivation = TRUE;
  TaskOne.Type = BASIC_TASK;
  TaskOne.SchType = PREEMPTIVE;
  TaskOne.period.secs = 1;
  TaskOne.period.nano_secs = 500 * NANOS_PER_MS;
  TaskOne.cpu_reserve.secs = 0;
  TaskOne.cpu_reserve.nano_secs = 500 * NANOS_PER_MS;
  TaskOne.offset.secs = 0;
  TaskOne.offset.nano_secs = 0;
  //nrk_activate_task (&TaskOne);

  TaskTwo.task = Task2;
  nrk_task_set_stk( &TaskTwo, Stack2, NRK_APP_STACKSIZE);
  TaskTwo.prio = 2;
  TaskTwo.FirstActivation = TRUE;
  TaskTwo.Type = BASIC_TASK;
  TaskTwo.SchType = PREEMPTIVE;
  TaskTwo.period.secs = 0;
  TaskTwo.period.nano_secs = 250 * NANOS_PER_MS;
  TaskTwo.cpu_reserve.secs = 0;
  TaskTwo.cpu_reserve.nano_secs = 0;
  //TaskTwo.cpu_reserve.nano_secs = 100 * NANOS_PER_MS;
  TaskTwo.offset.secs = 0;
  TaskTwo.offset.nano_secs = 0;
  //nrk_activate_task (&TaskTwo);

  TaskThree.task = Task3;
  TaskThree.Ptos = (void *) &Stack3[NRK_APP_STACKSIZE - 1];
  TaskThree.Pbos = (void *) &Stack3[0];
  TaskThree.prio = 10;
  TaskThree.FirstActivation = TRUE;
  TaskThree.Type = BASIC_TASK;
  TaskThree.SchType = PREEMPTIVE;
  TaskThree.period.secs = 0;
  TaskThree.period.nano_secs = 5 * NANOS_PER_MS;
  TaskThree.cpu_reserve.secs = 0;
  TaskThree.cpu_reserve.nano_secs = 0 * NANOS_PER_MS;
  TaskThree.offset.secs = 0;
  TaskThree.offset.nano_secs = 0;
  nrk_activate_task (&TaskThree);



}
Example #19
0
void
nrk_create_taskset()
{
    nrk_task_set_entry_function( &TaskOne, Task1);
    nrk_task_set_stk( &TaskOne, Stack1, NRK_APP_STACKSIZE);
    TaskOne.prio = 1;
    TaskOne.FirstActivation = TRUE;
    TaskOne.Type = BASIC_TASK;
    TaskOne.SchType = PREEMPTIVE;
    TaskOne.period.secs = 5;
    TaskOne.period.nano_secs = 250*NANOS_PER_MS;
    TaskOne.cpu_reserve.secs = 1;
    TaskOne.cpu_reserve.nano_secs = 50*NANOS_PER_MS;
    TaskOne.offset.secs = 0;
    TaskOne.offset.nano_secs= 0;
    nrk_activate_task (&TaskOne);
}
Example #20
0
void nrk_create_taskset ()
{
  MOBILE_TASK.task = tx_task;
  nrk_task_set_stk (&MOBILE_TASK, mobile_task_stack, NRK_APP_STACKSIZE);
  MOBILE_TASK.prio = 2;
  MOBILE_TASK.FirstActivation = TRUE;
  MOBILE_TASK.Type = BASIC_TASK;
  MOBILE_TASK.SchType = PREEMPTIVE;
  MOBILE_TASK.period.secs = 0;
  MOBILE_TASK.period.nano_secs = 200 * NANOS_PER_MS;
  MOBILE_TASK.cpu_reserve.secs = 0;
  MOBILE_TASK.cpu_reserve.nano_secs = 200 * NANOS_PER_MS;
  MOBILE_TASK.offset.secs = 0;
  MOBILE_TASK.offset.nano_secs = 0;
  nrk_activate_task (&MOBILE_TASK);

}
Example #21
0
void nrk_create_taskset ()
{
  WHACKY_TASK.task = whacky_task;
  nrk_task_set_stk( &WHACKY_TASK, whacky_task_stack, NRK_APP_STACKSIZE);
  WHACKY_TASK.prio = 2;
  WHACKY_TASK.FirstActivation = TRUE;
  WHACKY_TASK.Type = BASIC_TASK;
  WHACKY_TASK.SchType = PREEMPTIVE;
  WHACKY_TASK.period.secs = 2;
  WHACKY_TASK.period.nano_secs = 0;
  WHACKY_TASK.cpu_reserve.secs = 2;
  WHACKY_TASK.cpu_reserve.nano_secs = 0;
  WHACKY_TASK.offset.secs = 0;
  WHACKY_TASK.offset.nano_secs = 0;
  nrk_activate_task (&WHACKY_TASK);

  printf ("Create done\r\n");
}
Example #22
0
void
nrk_create_taskset()
{
  TaskOne.task = Task1;
  nrk_task_set_stk( &TaskOne, Stack1, NRK_APP_STACKSIZE);
  TaskOne.prio = 1;
  TaskOne.FirstActivation = TRUE;
  TaskOne.Type = BASIC_TASK;
  TaskOne.SchType = PREEMPTIVE;
  TaskOne.period.secs = 0;
  TaskOne.period.nano_secs = 5*NANOS_PER_MS;
  // Disable reserve
  TaskOne.cpu_reserve.secs = 0;
  TaskOne.cpu_reserve.nano_secs =  0;
  TaskOne.offset.secs = 0;
  TaskOne.offset.nano_secs= 0;
  nrk_activate_task (&TaskOne);

}
Example #23
0
File: main.c Project: Zubeen/ESE519
/*PRE-EXISTING STUFF DO NOT TOUCH*/
void nrk_create_taskset()
{
	TaskOne.task = Task1;
	TaskOne.Ptos = (void *) &Stack1[NRK_APP_STACKSIZE-1];
	TaskOne.Pbos = (void *) &Stack1[0];
	TaskOne.prio = 2;
	TaskOne.FirstActivation = TRUE;
	TaskOne.Type = BASIC_TASK;
	TaskOne.SchType = PREEMPTIVE;
	TaskOne.period.secs = 1;
	TaskOne.period.nano_secs = 0;
	TaskOne.cpu_reserve.secs = 0;
	TaskOne.cpu_reserve.nano_secs = 0;
	TaskOne.cpu_reserve.nano_secs = 100*NANOS_PER_MS;
	TaskOne.offset.secs = 0;
	TaskOne.offset.nano_secs= 0;
	nrk_activate_task (&TaskOne);
	nrk_kprintf( PSTR("Create Done\r\n") );
}
Example #24
0
void bmac_task_config ()
{
    nrk_task_set_entry_function( &bmac_task, bmac_nw_task);
    nrk_task_set_stk( &bmac_task, bmac_task_stack, BMAC_STACKSIZE);
    bmac_task.prio = BMAC_TASK_PRIORITY;
    bmac_task.FirstActivation = TRUE;
    bmac_task.Type = BASIC_TASK;
    bmac_task.SchType = PREEMPTIVE;
    bmac_task.period.secs = 0;
    bmac_task.period.nano_secs = BMAC_MIN_CHECK_RATE_MS * NANOS_PER_MS;
    bmac_task.cpu_reserve.secs = 5;      // bmac reserve , 0 to disable
    bmac_task.cpu_reserve.nano_secs = 0;
    bmac_task.offset.secs = 0;
    bmac_task.offset.nano_secs = 0;
#ifdef DEBUG
    printf( "bmac activate\r\n" );
#endif
    nrk_activate_task (&bmac_task);
}
Example #25
0
void nrk_create_taskset ()
{

  GATEWAY_TASK.task = gateway_task;
  GATEWAY_TASK.Ptos = (void *) &gateway_task_stack[NRK_APP_STACKSIZE - 1];
  GATEWAY_TASK.Pbos = (void *) &gateway_task_stack[0];
  GATEWAY_TASK.prio = 2;
  GATEWAY_TASK.FirstActivation = TRUE;
  GATEWAY_TASK.Type = BASIC_TASK;
  GATEWAY_TASK.SchType = PREEMPTIVE;
  GATEWAY_TASK.period.secs = 0;
  GATEWAY_TASK.period.nano_secs = 0;
  GATEWAY_TASK.cpu_reserve.secs = 0;
  GATEWAY_TASK.cpu_reserve.nano_secs =0 ;
  GATEWAY_TASK.offset.secs = 0;
  GATEWAY_TASK.offset.nano_secs = 0;
  nrk_activate_task (&GATEWAY_TASK);

  printf ("Create done\r\n");
}
Example #26
0
void nrk_create_taskset()
{
  TASK.task = task;
  TASK.Ptos = (void *) &task_stack[NRK_APP_STACKSIZE - 1];
  TASK.Pbos = (void *) &task_stack[0];
  TASK.prio = 3;
  TASK.FirstActivation = TRUE;
  TASK.Type = BASIC_TASK;
  TASK.SchType = PREEMPTIVE;
  
  TASK.cpu_reserve.secs = 0;
  TASK.cpu_reserve.nano_secs = 800 * NANOS_PER_MS;	
  TASK.period.secs = 1;
  TASK.period.nano_secs = 0 * NANOS_PER_MS;
  
  TASK.offset.secs = 0;
  TASK.offset.nano_secs= 0;
  nrk_activate_task (&TASK);
  
  if(DEBUG_APP == 2)
  	nrk_kprintf(PSTR("Created the two application layer tasks\r\n"));
}
Example #27
0
void
nrk_create_taskset()
{
  
  myTask.task = Task1;
  //nrk_task_set_stk( &myTask, tx_task_stack, NRK_APP_STACKSIZE);
  myTask.Ptos = (void *) &my_task_stack[NRK_APP_STACKSIZE-1];
  myTask.Pbos = (void *) &my_task_stack[0];
  myTask.prio = 2;
  myTask.FirstActivation = TRUE;
  myTask.Type = BASIC_TASK;
  myTask.SchType = PREEMPTIVE;
  myTask.period.secs = 1;
  myTask.period.nano_secs = 0;
  myTask.cpu_reserve.secs = 0;
  myTask.cpu_reserve.nano_secs = 0;
  myTask.offset.secs = 2;
  myTask.offset.nano_secs = 0;
  nrk_activate_task (&myTask);


  //nrk_kprintf ( PSTR("Create done\r\n") );
}
Example #28
0
void create_serial_task()			// CHECKED
{
	SERIAL_TASK.task = serial_task;
	SERIAL_TASK.Ptos = (void *) &serial_task_stack[NRK_APP_STACKSIZE - 1];
	SERIAL_TASK.Pbos = (void *) &serial_task_stack[0];
	SERIAL_TASK.prio = 19;
	SERIAL_TASK.FirstActivation = TRUE;
	SERIAL_TASK.Type = BASIC_TASK;
	SERIAL_TASK.SchType = PREEMPTIVE;
	
	SERIAL_TASK.cpu_reserve.secs = 0;
	SERIAL_TASK.cpu_reserve.nano_secs = 200 * NANOS_PER_MS;  
	SERIAL_TASK.period.secs = 0;
	SERIAL_TASK.period.nano_secs = 250 * NANOS_PER_MS;
	   
  
  	SERIAL_TASK.offset.secs = 0;
  	SERIAL_TASK.offset.nano_secs= 0;
  	nrk_activate_task (&SERIAL_TASK);
  	
  	nrk_kprintf(PSTR("SR: create_serial_task(): Serial Task started\r\n"));
  	
  	return;
}
Example #29
0
void nrk_create_taskset_2() {
	nrk_task_set_entry_function(&TaskOne, Task1);
	nrk_task_set_stk(&TaskOne, Stack1, NRK_APP_STACKSIZE);
	TaskOne.prio = 1;
	TaskOne.FirstActivation = TRUE;
	TaskOne.Type = BASIC_TASK;
	TaskOne.SchType = PREEMPTIVE;
	TaskOne.period.secs = 2;
	TaskOne.period.nano_secs = 0;
	TaskOne.cpu_reserve.secs = 2;
	TaskOne.cpu_reserve.nano_secs = 0;
	TaskOne.offset.secs = 0;
	TaskOne.offset.nano_secs = 0;
	printf("Activating Task 1\r\n");
	nrk_activate_task(&TaskOne);

	nrk_task_set_entry_function(&TaskTwo, Task2);
	nrk_task_set_stk(&TaskTwo, Stack2, NRK_APP_STACKSIZE);
	TaskTwo.prio = 2;
	TaskTwo.FirstActivation = TRUE;
	TaskTwo.Type = BASIC_TASK;
	TaskTwo.SchType = PREEMPTIVE;
	TaskTwo.period.secs = 1;
	TaskTwo.period.nano_secs = 0;
	TaskTwo.cpu_reserve.secs = 1;
	TaskTwo.cpu_reserve.nano_secs = 0;
	TaskTwo.offset.secs = 0;
	TaskTwo.offset.nano_secs = 0;
	printf("Activating Task 2\r\n");
	nrk_activate_task(&TaskTwo);

	 nrk_task_set_entry_function( &TaskThree, Task3);
	 nrk_task_set_stk( &TaskThree, Stack3, NRK_APP_STACKSIZE);
	 TaskThree.prio = 3;
	 TaskThree.FirstActivation = TRUE;
	 TaskThree.Type = BASIC_TASK;
	 TaskThree.SchType = PREEMPTIVE;
	 TaskThree.period.secs = 0;
	 TaskThree.period.nano_secs = 250 * NANOS_PER_MS;
	 TaskThree.cpu_reserve.secs = 0;
	 TaskThree.cpu_reserve.nano_secs = 250 * NANOS_PER_MS;
	 TaskThree.offset.secs = 0;
	 TaskThree.offset.nano_secs= 0;
	 printf("Activating Task 3\r\n");
	 nrk_activate_task (&TaskThree);


	 nrk_task_set_entry_function( &TaskFour, Task4);
	 nrk_task_set_stk( &TaskFour, Stack4, NRK_APP_STACKSIZE);
	 TaskFour.prio = 4;
	 TaskFour.FirstActivation = TRUE;
	 TaskFour.Type = BASIC_TASK;
	 TaskFour.SchType = PREEMPTIVE;
	 TaskFour.period.secs = 0;
	 TaskFour.period.nano_secs = 500 * NANOS_PER_MS;
	 TaskFour.cpu_reserve.secs = 0;
	 TaskFour.cpu_reserve.nano_secs = 500 * NANOS_PER_MS;
	 TaskFour.offset.secs = 0;
	 TaskFour.offset.nano_secs= 0;
	 printf("Activating Task 4\r\n");
	 nrk_activate_task (&TaskFour);
}
Example #30
0
//Create all the tasks
void nrk_create_taskset ()
{


    RX_TASK.task = rx_task;
    nrk_task_set_stk( &RX_TASK, rx_task_stack, NRK_APP_STACKSIZE);
    RX_TASK.prio = 10;
    RX_TASK.FirstActivation = TRUE;
    RX_TASK.Type = BASIC_TASK;
    RX_TASK.SchType = PREEMPTIVE;
    RX_TASK.period.secs = 1;
    RX_TASK.period.nano_secs =0;
    RX_TASK.cpu_reserve.secs = 0;
    RX_TASK.cpu_reserve.nano_secs = 200 * NANOS_PER_MS;
    RX_TASK.offset.secs = 0;
    RX_TASK.offset.nano_secs = 0;
    

    TX_TASK.task = tx_task;
    nrk_task_set_stk( &TX_TASK, tx_task_stack, NRK_APP_STACKSIZE);
    TX_TASK.prio = 10;
    TX_TASK.FirstActivation = TRUE;
    TX_TASK.Type = BASIC_TASK;
    TX_TASK.SchType = PREEMPTIVE;
    TX_TASK.period.secs = 1;
    TX_TASK.period.nano_secs = 0;
    TX_TASK.cpu_reserve.secs = 0;
    TX_TASK.cpu_reserve.nano_secs = 200 * NANOS_PER_MS;
    TX_TASK.offset.secs = 0;
    TX_TASK.offset.nano_secs = 0;
    

    RE_TX_TASK.task = re_tx_task;
    nrk_task_set_stk( &RE_TX_TASK, re_tx_task_stack, NRK_APP_STACKSIZE);
    RE_TX_TASK.prio = 1;
    RE_TX_TASK.FirstActivation = TRUE;
    RE_TX_TASK.Type = BASIC_TASK;
    RE_TX_TASK.SchType = PREEMPTIVE;
    RE_TX_TASK.period.secs = 2;
    RE_TX_TASK.period.nano_secs = 0;
    RE_TX_TASK.cpu_reserve.secs = 0;
    RE_TX_TASK.cpu_reserve.nano_secs = 100 * NANOS_PER_MS;
    RE_TX_TASK.offset.secs = 0;
    RE_TX_TASK.offset.nano_secs = 0;
    


    ACK_TX_TASK.task = ack_tx_task;
    nrk_task_set_stk( &ACK_TX_TASK, ack_tx_task_stack, NRK_APP_STACKSIZE);
    ACK_TX_TASK.prio = 1;
    ACK_TX_TASK.FirstActivation = TRUE;
    ACK_TX_TASK.Type = BASIC_TASK;
    ACK_TX_TASK.SchType = PREEMPTIVE;
    ACK_TX_TASK.period.secs = 1;
    ACK_TX_TASK.period.nano_secs = 0;
    ACK_TX_TASK.cpu_reserve.secs = 0;
    ACK_TX_TASK.cpu_reserve.nano_secs = 100 * NANOS_PER_MS;
    ACK_TX_TASK.offset.secs = 0;
    ACK_TX_TASK.offset.nano_secs = 0;


    nrk_activate_task (&RX_TASK);
    nrk_activate_task (&TX_TASK);
    nrk_activate_task (&RE_TX_TASK);
    nrk_activate_task (&ACK_TX_TASK);



    printf ("Create done\r\n");
}