void boardsupport_init(void) { central_data_t *central_data; irq_initialize_vectors(); cpu_irq_enable(); Disable_global_interrupt(); sysclk_init(); //delay_init(sysclk_get_cpu_hz()); INTC_init_interrupts(); central_data=central_data_get_pointer_to_struct(); #ifdef TELEMETRY_USE_UART uart_int_set_usart_conf(TELEMETRY_UART_INDEX, asv_debug_uart_conf()); //uart configuration uart_int_init(TELEMETRY_UART_INDEX); uart_int_register_write_stream(uart_int_get_uart_handle(TELEMETRY_UART_INDEX), &(central_data->wired_out_stream)); // Registering streams buffer_make_buffered_stream_lossy(&(wired_in_buffer), &(central_data->wired_in_stream)); uart_int_register_read_stream(uart_int_get_uart_handle(TELEMETRY_UART_INDEX), &(central_data->wired_in_stream)); central_data->debug_in_stream=¢ral_data->wired_in_stream; central_data->debug_out_stream=¢ral_data->wired_out_stream; #endif central_data_init(); Enable_global_interrupt(); }
void acoustic_init(audio_t* audio_data, int32_t UID, ahrs_t* ahrs, Position_estimation* position_estimation, remote_t* remote, navigation_t* navigation, stabilisation_copter_t* stabilisation_copter, control_command_t* controls_nav, Mavlink_waypoint_handler* waypoint_handler, byte_stream_t* telemetry_down_stream) { //init dependencies audio_data->ahrs = ahrs; audio_data->position_estimation = position_estimation; audio_data->remote = remote; audio_data->navigation = navigation; audio_data->stabilisation_copter = stabilisation_copter; audio_data->controls_nav = controls_nav; audio_data->waypoint_handler = waypoint_handler; audio_data->telemetry_down_stream = telemetry_down_stream; // uart setting usart_config_t usart_conf_audio = {}; usart_conf_audio.mode = UART_IN; usart_conf_audio.uart_device.uart = (avr32_usart_t*)&AVR32_USART2; usart_conf_audio.uart_device.IRQ = AVR32_USART2_IRQ; usart_conf_audio.uart_device.receive_stream = NULL; usart_conf_audio.options = {}; usart_conf_audio.options.baudrate = 57600; usart_conf_audio.options.charlength = 8; usart_conf_audio.options.paritytype = USART_NO_PARITY; usart_conf_audio.options.stopbits = USART_1_STOPBIT; usart_conf_audio.options.channelmode = USART_NORMAL_CHMODE; usart_conf_audio.rx_pin_map = {AVR32_USART2_RXD_0_1_PIN, AVR32_USART2_RXD_0_1_FUNCTION}; usart_conf_audio.tx_pin_map = {AVR32_USART2_TXD_0_1_PIN, AVR32_USART2_TXD_0_1_FUNCTION}; uart_int_set_usart_conf(UID, &usart_conf_audio); //uart configuration uart_int_init(UID); //uart_int_register_write_stream(uart_int_get_uart_handle(UID), &(centralData->audio_stream_out)); // Registering streams buffer_make_buffered_stream_lossy(&(audio_data->audio_buffer), &(audio_data->audio_stream_in)); uart_int_register_read_stream(uart_int_get_uart_handle(UID), &(audio_data->audio_stream_in)); }
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), ¢ral_data->xbee_out_stream); //init_UART_DMA(0); //register_write_stream_dma(get_UART_handle(0), ¢ral_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), ¢ral_data->wired_out_stream); //init_UART_DMA(0); //register_write_stream_dma(get_UART_handle(0), ¢ral_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), ¢ral_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(¢ral_data->multi_telemetry_down_stream); multistream_init(¢ral_data->multi_telemetry_up_stream); multistream_add_stream(¢ral_data->multi_telemetry_down_stream, ¢ral_data->wired_out_stream); multistream_add_stream(¢ral_data->multi_telemetry_down_stream, ¢ral_data->xbee_out_stream); multistream_add_stream(¢ral_data->multi_telemetry_up_stream, ¢ral_data->wired_in_stream); multistream_add_stream(¢ral_data->multi_telemetry_up_stream, ¢ral_data->xbee_in_stream); /* can_bus_init(1, asv_can1_conf()); can_bus_register_write_stream(¢ral_data->ext_can_out_stream_data, ¢ral_data->ext_can_out_stream, 1, MAVLINK_COMPONENT_ID, 0x3ff); can_bus_register_read_stream(¢ral_data->ext_can_in_stream_data, ¢ral_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(¢ral_data->multi_telemetry_down_stream); central_data->telemetry_up_stream = multistream_get_stream(¢ral_data->multi_telemetry_up_stream); central_data->debug_out_stream=¢ral_data->wired_out_stream; central_data->debug_in_stream=¢ral_data->wired_in_stream; //central_data->debug_out_stream = ¢ral_data->xbee_out_stream; //central_data->debug_in_stream = ¢ral_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 =