static void TaskHIDTest(void *pvParameters) { uint8_t byte; uint8_t line_buffer[128]; uint16_t line_ix = 0; for(;;) { /* HID Loopback Test */ #if 0 if(PIOS_COM_ReceiveBufferUsed(COM_USB_HID) != 0) { byte = PIOS_COM_ReceiveBuffer(COM_USB_HID); if(byte == '\r' || byte == '\n' || byte == 0) { PIOS_COM_SendFormattedString(COM_USB_HID, "RX: %s\r", line_buffer); PIOS_COM_SendFormattedString(COM_DEBUG_USART, "RX: %s\r", line_buffer); line_ix = 0; } else if(line_ix < sizeof(line_buffer)) { line_buffer[line_ix++] = byte; line_buffer[line_ix] = 0; } } #endif /* HID Loopback Test */ if(PIOS_COM_ReceiveBufferUsed(COM_USART2) != 0) { byte = PIOS_COM_ReceiveBuffer(COM_USART2); #if 0 if(byte == '\r' || byte == '\n' || byte == 0) { PIOS_COM_SendFormattedString(COM_DEBUG_USART, "RX: %s\r", line_buffer); line_ix = 0; } else if(line_ix < sizeof(line_buffer)) { line_buffer[line_ix++] = byte; line_buffer[line_ix] = 0; } #endif PIOS_COM_SendChar(COM_DEBUG_USART, (char)byte); } } }
/** * PIOS_Board_Init() */ void PIOS_Board_Init(void) { /* Delay system */ PIOS_DELAY_Init(); /* Initialize UAVObject libraries */ // EventDispatcherInitialize(); // UAVObjInitialize(); // HwSettingsInitialize(); // ManualControlSettingsInitialize(); #if defined(PIOS_INCLUDE_RTC) /* Initialize the real-time clock and its associated tick */ PIOS_RTC_Init(&pios_rtc_main_cfg); #endif /* Initialize the alarms library */ // AlarmsInitialize(); /* Initialize the task monitor library */ // TaskMonitorInitialize(); #if 0 // XXX this is all very wrong now #if defined(PIOS_INCLUDE_SBUS) { uint32_t pios_usart_sbus_id; if (PIOS_USART_Init(&pios_usart_sbus_id, &pios_usart_sbus_main_cfg)) { PIOS_Assert(0); } uint32_t pios_sbus_id; if (PIOS_SBUS_Init(&pios_sbus_id, &pios_sbus_cfg, &pios_usart_com_driver, pios_usart_sbus_id)) { PIOS_Assert(0); } } #endif /* PIOS_INCLUDE_SBUS */ #if defined(PIOS_INCLUDE_SPEKTRUM) { uint32_t pios_usart_spektrum_id; if (PIOS_USART_Init(&pios_usart_spektrum_id, &pios_usart_spektrum_main_cfg)) { PIOS_Assert(0); } uint32_t pios_spektrum_id; if (PIOS_SPEKTRUM_Init(&pios_spektrum_id, &pios_spektrum_main_cfg, &pios_usart_com_driver, pios_usart_spektrum_id, 0)) { PIOS_Assert(0); } } #endif /* PIOS_INCLUDE_SPEKTRUM */ #endif #if defined(PIOS_COM_AUX) uint32_t pios_usart_aux_id; if (PIOS_USART_Init(&pios_usart_aux_id, &pios_usart_aux_cfg)) { PIOS_DEBUG_Assert(0); } static uint8_t rx_buffer[128]; static uint8_t tx_buffer[128]; if (PIOS_COM_Init(&pios_com_aux_id, &pios_usart_com_driver, pios_usart_aux_id, rx_buffer, 128, tx_buffer, 128)) { PIOS_Assert(0); } #endif PIOS_COM_SendFormattedString(PIOS_COM_AUX, "PX2IO starting...\r\n"); /* Bring up the I2C slave interface */ PIOS_I2C_Slave_Init(pios_i2c_slave_id, &i2c_slave_cfg); PIOS_Servo_Init(); // PIOS_ADC_INIT(); PIOS_GPIO_Init(); /* Configure the selected receiver */ /* XXX we don't have these settings until we have config from FMU ... */ #if defined(PIOS_INCLUDE_PPM) #if !defined(PIOS_INCLUDE_RTC) # error PPM requires RTC #endif PIOS_PPM_Init(); uint32_t pios_ppm_rcvr_id; if (PIOS_RCVR_Init(&pios_ppm_rcvr_id, &pios_ppm_rcvr_driver, 0)) { PIOS_Assert(0); } for (uint8_t i = 0; i < PIOS_PPM_NUM_INPUTS && pios_rcvr_max_channel < NELEMENTS(pios_rcvr_channel_to_id_map); i++) { pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].id = pios_ppm_rcvr_id; pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].channel = i; pios_rcvr_max_channel++; } #endif /* PIOS_INCLUDE_PPM */ #if defined(PIOS_INCLUDE_SPEKTRUM) if (hwsettings_cc_mainport == HWSETTINGS_CC_MAINPORT_SPEKTRUM || hwsettings_cc_flexiport == HWSETTINGS_CC_FLEXIPORT_SPEKTRUM) { uint32_t pios_spektrum_rcvr_id; if (PIOS_RCVR_Init(&pios_spektrum_rcvr_id, &pios_spektrum_rcvr_driver, 0)) { PIOS_Assert(0); } for (uint8_t i = 0; i < PIOS_SPEKTRUM_NUM_INPUTS && pios_rcvr_max_channel < NELEMENTS(pios_rcvr_channel_to_id_map); i++) { pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].id = pios_spektrum_rcvr_id; pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].channel = i; pios_rcvr_max_channel++; } } #endif /* PIOS_INCLUDE_SPEKTRUM */ #if defined(PIOS_INCLUDE_SBUS) if (hwsettings_cc_mainport == HWSETTINGS_CC_MAINPORT_SBUS) { uint32_t pios_sbus_rcvr_id; if (PIOS_RCVR_Init(&pios_sbus_rcvr_id, &pios_sbus_rcvr_driver, 0)) { PIOS_Assert(0); } for (uint8_t i = 0; i < SBUS_NUMBER_OF_CHANNELS && pios_rcvr_max_channel < NELEMENTS(pios_rcvr_channel_to_id_map); i++) { pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].id = pios_sbus_rcvr_id; pios_rcvr_channel_to_id_map[pios_rcvr_max_channel].channel = i; pios_rcvr_max_channel++; } } #endif /* PIOS_INCLUDE_SBUS */ //PIOS_WDG_Init(); }