Esempio n. 1
0
File: main.c Progetto: 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 ();

}
Esempio n. 2
0
int main ()
{
  nrk_setup_ports ();
  nrk_setup_uart (UART_BAUDRATE_115K2);

  nrk_init ();

  nrk_led_clr (0);
  nrk_led_clr (1);
  nrk_led_clr (2);
  nrk_led_clr (3);

  nrk_time_set (0, 0);

  tdma_mode_set(TDMA_MASTER);

  // use tdma's tree scheduler
  tdma_schedule_method_set(TDMA_SCHED_TREE);

  tdma_task_config ();

  nrk_create_taskset ();

  nrk_start ();

  return 0;
}
Esempio n. 3
0
int main ()
{
  uint16_t div;
  nrk_setup_ports ();
  nrk_setup_uart (UART_BAUDRATE_115K2);
  begin();//start I2C

  nrk_init ();

  nrk_led_clr (0);
  nrk_led_clr (1);
  nrk_led_clr (2);
  nrk_led_clr (3);

  nrk_time_set (0, 0);

  tdma_set_error_callback(&tdma_error);
  tdma_task_config();

  //nrk_register_drivers();
  nrk_create_taskset ();
  nrk_start ();

  return 0;
}
Esempio n. 4
0
int main ()
{
    uint8_t ds;
    nrk_setup_ports ();
    nrk_setup_uart (UART_BAUDRATE_115K2);


    ds=nrk_eeprom_read_byte(EEPROM_SLEEP_STATE_ADDR);
    if(ds==1) deep_sleep_button();

    nrk_init ();

    nrk_led_clr (0);
    nrk_led_clr (1);
    nrk_led_clr (2);
    nrk_led_clr (3);

    nrk_time_set (0, 0);

    tdma_set_error_callback(&tdma_error);
    tdma_task_config();

    nrk_register_drivers();
    nrk_create_taskset ();
    nrk_start ();

    return 0;
}
Esempio n. 5
0
int main ()
{
  nrk_setup_ports ();
  nrk_setup_uart (UART_BAUDRATE_115K2);

  nrk_init ();

  nrk_led_clr (0);
  nrk_led_clr (1);
  nrk_led_clr (2);
  nrk_led_clr (3);

  nrk_time_set (0, 0);

  tdma_mode_set(TDMA_SLAVE);

  // do the scheduling by yourself
  tdma_schedule_method_set(TDMA_SCHED_MANUAL);

  // rcv sync packet from master
  tdma_schedule_add(0, TDMA_RX, -1);

  // SCHEDULE A
  // add a TX slot for every tenth slot
  
  for (tdma_slot_t i = 10; i < TDMA_SLOTS_PER_CYCLE; i+=10)
  {
    tdma_schedule_add(i, TDMA_TX_PARENT, 0);
  }
  
  
  // SCHEDULE B
  // just do one slot
  //tdma_schedule_add(10, TDMA_TX_PARENT, 0);


  // SCHEDULE C
  // for node 2
  //  tdma_schedule_add(0, TDMA_RX, 0);
  //  tdma_schedule_add(10, TDMA_TX_PARENT, 0);
  //  tdma_schedule_add(100, TDMA_TX_CHILD, 0);

  // for node 3
    //tdma_schedule_add(20, TDMA_TX_PARENT, 0);
    //tdma_schedule_add(100, TDMA_RX, 0);




  tdma_task_config ();

  nrk_create_taskset ();

  nrk_start ();

  return 0;
}
Esempio n. 6
0
int main ()
{
    uint16_t div;

    nrk_int_disable();
    // Configure relay port directions
    DDRE |= 0x10;
    socket_0_enable();
    // Configure led port directions
    DDRE |= 0x0c;
    DDRD |= 0x00;
    PORTD |= 0xff;
    DDRF = 0;

    socket_0_active=nrk_eeprom_read_byte(EEPROM_STATE_ADDR);
    // turn outlet on if active or throttled for testing
    if(socket_0_active==1 || socket_0_active==2)
    {
        socket_0_enable();
        plug_led_green_set();
    } else
    {
        socket_0_disable();
        plug_led_green_clr();
    }
    // If PUD value set, then we expect it wasn't a clean reboot (unexpected restart).
    // Try to force a proper watchdog reboot
    if((MCUCR&0x10)!=0 )
    {
        //nrk_watchdog_enable();
        nrk_int_disable();
        MCUSR &= ~(1<<WDRF);
        WDTCSR |= (1<<WDCE) | (1<<WDE);
        WDTCSR = (1<<WDE) | (1<<WDP2) | (1<<WDP0);

        // Disable interrupts to stop pending timers etc
        while(1);
    }

    nrk_setup_uart (UART_BAUDRATE_115K2);

    MCUCR |= BM(PUD);

    nrk_init ();
    nrk_time_set (0, 0);

    tdma_set_error_callback(&tdma_error);
    tdma_task_config();

    nrk_create_taskset ();
    nrk_start ();

    return 0;
}
Esempio n. 7
0
int main ()
{
  nrk_setup_ports ();
  nrk_setup_uart (UART_BAUDRATE_115K2);

  nrk_init ();

  nrk_led_clr (0);
  nrk_led_clr (1);
  nrk_led_clr (2);
  nrk_led_clr (3);

  nrk_time_set (0, 0);

  tdma_mode_set(TDMA_MASTER);

  // do the scheduling by yourself
  tdma_schedule_method_set(TDMA_SCHED_MANUAL);

  // send sync to child
  tdma_schedule_add(0, TDMA_TX_CHILD, 0);

  // SCHEDULE A
  // add a RX from child every tenth slot
  for (tdma_slot_t i = 10; i < TDMA_SLOTS_PER_CYCLE; i+=10)
  {
    tdma_schedule_add(i, TDMA_RX, 0);
  }
  
  
  // SCHEDULE B
  // rcv data from child. priority is ignored
  //tdma_schedule_add(10, TDMA_RX, -1);

  // SCHEDULE C: Sync Test
  // Add 2 RX slots from children from level 1 and 2
  //tdma_schedule_add(0, TDMA_TX_CHILD, 0);
  //tdma_schedule_add(10, TDMA_RX, 0);
  //tdma_schedule_add(20, TDMA_RX, 0);


  tdma_task_config ();

  nrk_create_taskset ();

  nrk_start ();

  return 0;
}
Esempio n. 8
0
int main ()
{
    uint16_t div;

    // Configure relay port directions
    DDRE |= 0x10;
    socket_0_enable();
    // Configure led port directions
    DDRE |= 0x0c;
    DDRD |= 0x00;
    PORTD |= 0xff;
    DDRF = 0;

    socket_0_active=nrk_eeprom_read_byte(EEPROM_STATE_ADDR);
    if(socket_0_active==1)
    {
        socket_0_enable();
        plug_led_green_set();
    } else
    {
        socket_0_disable();
        plug_led_green_clr();
    }

    MCUCR |= BM(PUD);

    nrk_setup_uart (UART_BAUDRATE_115K2);

    nrk_init ();

    nrk_time_set (0, 0);

    tdma_set_error_callback(&tdma_error);
    tdma_task_config();

    nrk_create_taskset ();
    nrk_start ();

    return 0;
}
Esempio n. 9
0
int main ()
{
  uint16_t div;
  nrk_setup_ports ();
  nrk_setup_uart (UART_BAUDRATE_115K2);

  InitSyntPorts();
  nrk_init ();

  nrk_led_clr (0);
  nrk_led_clr (1);
  nrk_led_clr (2);
  nrk_led_clr (3);

  nrk_time_set (0, 0);

  tdma_task_config();

  nrk_create_taskset ();
  nrk_start ();

  return 0;
}