int main(void)
{
	init_buttons();
	init_LEDs();
	
    while(1)
    {
	    if (BUT1) setLED1; else clearLED1;
		if (BUT2) setLED2; else clearLED2;
		if (BUT3) setLED3; else clearLED3;
		if (BUT4) setLED4; else clearLED4;
    }
}
Exemple #2
0
void initialise_board(void) {
		int i;
		central_data_t *central_data=central_data_get_pointer_to_struct();
		
		irq_initialize_vectors();
		cpu_irq_enable();
		Disable_global_interrupt();
			
		// Initialize the sleep manager
		sleepmgr_init();
		sysclk_init();
		INTC_init_interrupts();

		delay_init(sysclk_get_cpu_hz());
		time_keeper_init();
		
//		time_keeper_init_synchronisation();

		init_LEDs();
		switch_LED(1, LED_ON);
		switch_LED(0, LED_ON);

		pwm_servos_init(true);
		
		// set up UART for main telemetry
		uart_int_set_usart_conf(0, asv_xbee_uart_conf());
		uart_int_init(0);
		uart_int_register_write_stream(uart_int_get_uart_handle(0), &central_data->xbee_out_stream);
		
		//init_UART_DMA(0);
		//register_write_stream_dma(get_UART_handle(0), &central_data->xbee_out_stream);
		buffer_make_buffered_stream(&(central_data->xbee_in_buffer), &(central_data->xbee_in_stream));
		uart_int_register_read_stream(uart_int_get_uart_handle(0), &(central_data->xbee_in_stream));

		uart_int_set_usart_conf(4, asv_debug_uart_conf());
		uart_int_init(4);
		uart_int_register_write_stream(uart_int_get_uart_handle(4), &central_data->wired_out_stream);
		
		//init_UART_DMA(0);
		//register_write_stream_dma(get_UART_handle(0), &central_data->wired_out_stream);
		buffer_make_buffered_stream(&(central_data->wired_in_buffer), &(central_data->wired_in_stream));
		uart_int_register_read_stream(uart_int_get_uart_handle(4), &(central_data->wired_in_stream));

		// set up UART for GPS
		uart_int_set_usart_conf(3, asv_gps_uart_conf());
		uart_int_init(3);
		uart_int_register_write_stream(uart_int_get_uart_handle(3), &central_data->gps_out_stream);		
		buffer_make_buffered_stream(&(central_data->gps_in_buffer), &(central_data->gps_in_stream));
		uart_int_register_read_stream(uart_int_get_uart_handle(3), &(central_data->gps_in_stream));

		
		multistream_init(&central_data->multi_telemetry_down_stream);
		multistream_init(&central_data->multi_telemetry_up_stream);

		multistream_add_stream(&central_data->multi_telemetry_down_stream, &central_data->wired_out_stream);
		multistream_add_stream(&central_data->multi_telemetry_down_stream, &central_data->xbee_out_stream);

		multistream_add_stream(&central_data->multi_telemetry_up_stream, &central_data->wired_in_stream);
		multistream_add_stream(&central_data->multi_telemetry_up_stream, &central_data->xbee_in_stream);
		
		/*
		can_bus_init(1, asv_can1_conf());
		can_bus_register_write_stream(&central_data->ext_can_out_stream_data, &central_data->ext_can_out_stream, 1, MAVLINK_COMPONENT_ID, 0x3ff);
		can_bus_register_read_stream(&central_data->ext_can_in_stream_data, &central_data->ext_can_in_stream, 1, MAVLINK_COMPONENT_ID, 0x00);
		*/
		
		// set telemetry stream for mavlink
		//central_data->telemetry_down_stream=&(central_data->xbee_out_stream);
		//central_data->telemetry_up_stream  =&(central_data->xbee_in_stream);
		//central_data->telemetry_down_stream=&(central_data->wired_out_stream);
		//central_data->telemetry_up_stream  =&(central_data->wired_in_stream);
		central_data->telemetry_down_stream= multistream_get_stream(&central_data->multi_telemetry_down_stream);
		central_data->telemetry_up_stream  = multistream_get_stream(&central_data->multi_telemetry_up_stream);
		
		central_data->debug_out_stream=&central_data->wired_out_stream;
		central_data->debug_in_stream=&central_data->wired_in_stream;
		//central_data->debug_out_stream = &central_data->xbee_out_stream;
		//central_data->debug_in_stream  = &central_data->xbee_in_stream;
		
		print_util_dbg_print_init(central_data->debug_out_stream);

		// init error handler as plain text until mavlink is configured
		error_handler_init_plaintext(central_data->debug_out_stream);

		// init mavlink
		// Init mavlink communication
		mavlink_communication_conf_t mavlink_config = 
		{	
			.scheduler_config =
			{
				.max_task_count = 30,
				.schedule_strategy = ROUND_ROBIN,
				.debug = true
			},
			.mavlink_stream_config = 
			{
				.rx_stream   = central_data->telemetry_up_stream,
				.tx_stream   = central_data->telemetry_down_stream,
				.sysid       = MAVLINK_SYS_ID,
				.compid      = MAVLINK_COMPONENT_ID,
				.use_dma     = false
			},
			.message_handler_config = 
Exemple #3
0
void    sys_init()
{
//   char str[32];
//   unsigned long ul;
//   struct LogEntry entry;
   struct NodeCfg ncfg;
   unsigned long long _ull;
   
   FILEDESCR_t fd;
   int err;
   static struct child c = {BAD_ADDRESS, 0};
   
//   msg_count       = 0;
//   last_msg_pos    = 0;
   total_msg_count = 0;

   for(err = MAX_CHILDREN; err--; )
      memcopy(&children[err], &c, sizeof(struct child));
   //memset(zone_state, 0, sizeof(zone_state));
   for(err = STRG_MAX_ZONE_NUM; err--;)
      zone_state[err] = ZONE_STATE_ON;

   init_LEDs();
   setNormalState();
   //switchOnLED(LED_RED);
//   scroll_pos      = 0;
//   port_attr_t p4;

//   event_emit(0, INIT_EVT, 0);

   /*
   PIN_SET(p4.dir, 0x19, PIN_HI);
   PIN_CLEAR(p4.sel, 0x19);
   port_set_attr(4, 0x19, &p4);
   port_write(4, 0x19, PIN_HI);
   p4_val = 0x01;
   */
  
//   SPI_init();
//   err = initStorage();
//   OLED_init();
//   init_kbrd();
//   menu_init(0);
//   OLED_clr(68, 3*9, 2 * 6, 9);
//   err = mmcReadBlock(23, 3, &ul);

   //err = logEntriesNum();
   //err = logAddEntry(&entry, "Test message3");
   //err = strgFindNode(0x66ULL, &ncfg);
   //itoa(err, fd.filename, 10);
   //OLED_puts(0, 0, 0xff, font6x9, fd.filename);
   //out_dump (0, 50, sizeof(struct NodeCfg), &ncfg);
   /*
   strcpy(str, "Pos: ");
   ul = logstat.last_entry_pos;
   //ul = (unsigned long)syscfg.log_state_pos << 9;
   ultoa(ul, str + strlen(str), 10);
   str[strlen(str) + 1] = 0;
   str[strlen(str)]     = ' ';
   ul = syscfg.log_state_pos;
   ultoa(ul, str + strlen(str), 10);

   OLED_puts(0, 0, 0xff, font6x9, str);
   */

//   init_FAT();
//   Read_PBR();
//   ultoa(fat.root_dir, fd.filename, 16);
//   OLED_puts(17 * 6, 50, 0xff, font6x9, fd.filename);
/*
   strcpy(fd.filename, "LOG     ");
   if(FindFile(fat.root_dir, &fd) != FAT_SUCCESS)
      OLED_puts(0, 50, 0xff, font6x9, "FindFile failed");
   else
   {
      itoa(fd.clust, fd.filename, 16);
      OLED_puts(0, 50, 0xff, font6x9, fd.filename);
      ultoa(fd.size, fd.filename, 16);
      OLED_puts(10 * 6, 50, 0xff, font6x9, fd.filename);
   }
*/

   event_emit(LOW_PRIORITY, INIT_EVT, 0);

//   stimer_set(1, 1000);
//
               
    return;
}