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; } }
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 =
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; }