Exemple #1
0
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(hello_world_process, ev, data)
{
  PROCESS_BEGIN();
  frame_manager_init();


	status_led_init();
	status_led_rx_on(led_on);
	status_led_tx_on(led_on);

  etimer_set(&et_hello, 1 * CLOCK_SECOND);

  while( 1 )
  {

    PROCESS_WAIT_EVENT();

    if(ev == PROCESS_EVENT_TIMER) {

			if (led_on) led_on = FALSE;
			else led_on = TRUE;

			status_led_rx_on(led_on);
			status_led_tx_on(led_on);

			etimer_reset(&et_hello);
    }
  }
  PROCESS_END();
}
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(rx_process, ev, data)
{
  PROCESS_BEGIN();

	arduino_spi_init();
	status_led_init();

	lora_radio_driver.init();

	// Start infinite RX	
	lora_radio_driver.on();

	// Print CPU serial
	printf("CPU serial nb: %08x, %08x, %08x, %08x\n",(unsigned int) U_ID->UI_0,(unsigned int) U_ID->UI_1, (unsigned int) U_ID->UI_2,(unsigned int) U_ID->UI_3);

	etimer_set(&rx_timer, 10 * CLOCK_SECOND);

  while( 1 )
  {

    PROCESS_WAIT_EVENT();

    if(ev == PROCESS_EVENT_TIMER) {
			leds_toggle(LEDS_ALL);


			printf( "Alive %d\n\r", counter++);

			etimer_reset(&rx_timer);
    }
  }
  PROCESS_END();
}
Exemple #3
0
static int initr_status_led(void)
{
#if defined(STATUS_LED_BOOT)
	status_led_set(STATUS_LED_BOOT, STATUS_LED_BLINKING);
#else
	status_led_init();
#endif
	return 0;
}
Exemple #4
0
int main(void) {
    // Set the system clock to the full 120MHz
    uint32_t sysClkFreq = SysCtlClockFreqSet(SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480, 120000000);


    debug_init(sysClkFreq);
    status_led_init();
    network_driver_init(sysClkFreq);
    networking_init();
    telemetry_init();
    transducer_init();
    thermocouple_init();
    solenoid_init();

    debug_print("Initialization complete. starting main loop.\r\n");

    // Set up the SysTick timer and its interrupts
    SysTickPeriodSet(6000); // 40 kHz
    SysTickIntRegister(sys_tick);
    SysTickIntEnable();
    SysTickEnable();

    uint32_t loopIterations = 0;
    uint32_t frame_start = systick_clock;



    while(1) {
        status_led_periodic();
        network_driver_periodic();
        telemetry_periodic();
        solenoid_periodic();

        //	debug_print_u32(systick_clock);

        //count loop iterations per second
        loopIterations++;
        if(systick_clock - frame_start >= 1000) {
            loops_per_second = loopIterations;
            loopIterations = 0;
            frame_start = systick_clock;
        }

    }
}
Exemple #5
0
void status_led_set (int led, int state)
{
	led_dev_t *ld;

	if (led < 0 || led >= MAX_LED_DEV)
		return;

	if (!status_led_init_done)
		status_led_init ();

	ld = &led_dev[led];

	ld->state = state;
	if (state == STATUS_LED_BLINKING) {
		ld->cnt = 0;		/* always start with full period    */
		state = STATUS_LED_ON;	/* always start with LED _ON_       */
	}
	__led_set (ld->mask, state);
}
Exemple #6
0
void status_led_tick (ulong timestamp)
{
	led_dev_t *ld;
	int i;

	if (!status_led_init_done)
		status_led_init ();

	for (i = 0, ld = led_dev; i < MAX_LED_DEV; i++, ld++) {

		if (ld->state != STATUS_LED_BLINKING)
			continue;

		if (++ld->cnt >= ld->period) {
			__led_toggle (ld->mask);
			ld->cnt -= ld->period;
		}

	}
}