void ATCommandHandler::run() { std::cout << std::endl << "AtCommand handler started and working" << std::endl; navDataDemoMode(); fTrim(); takeOff(); watchdog(); move(); land(); }
/** * @brief * Hardware initialization function * This function initializes hardware at application start up prior * to other initializations or OS operations. */ static void fHwInit(void) { /* Trim register settings */ fTrim(); /* Clock setting */ /** - Initialize clock */ fClockInit(); /** - Initialize pmu */ fPmuInit(); /** Orion has 4 interrupt bits in interrupt priority register * The lowest 4 bits are not used. * @verbatim +-----+-----+-----+-----+-----+-----+-----+-----+ |bit 7|bit 6|bit 5|bit 4|bit 3|bit 2|bit 1|bit 0| | | | | | 0 | 0 | 0 | 0 | +-----+-----+-----+-----+-----+-----+-----+-----+ | INTERRUPT PRIORITY | NOT IMPLEMENTED, | read as 0 Valid priorities are 0x00, 0x10, 0x20, 0x30 0x40, 0x50, 0x60, 0x70 0x80, 0x90, 0xA0, 0xB0 0xC0, 0xD0, 0xE0, 0xF0 @endverbatim * Lowest number is highest priority * * * This range is defined by * configKERNEL_INTERRUPT_PRIORITY (lowest) * and configMAX_SYSCALL_INTERRUPT_PRIORITY (highest). All interrupt * priorities need to fall in that range. * * To be future safe, the LSbits of the priority are set to 0xF. * This wil lmake sure that if more interrupt bits are used, the * priority is maintained. */ /** - Set IRQs priorities */ NVIC_SetPriority(Tim0_IRQn, 14); NVIC_SetPriority(Tim1_IRQn, 14); NVIC_SetPriority(Tim2_IRQn, 14); NVIC_SetPriority(Uart1_IRQn,14); NVIC_SetPriority(Spi_IRQn, 14); NVIC_SetPriority(I2C_IRQn, 14); NVIC_SetPriority(Gpio_IRQn, 14); NVIC_SetPriority(Rtc_IRQn, 14); NVIC_SetPriority(MacHw_IRQn, 13); NVIC_SetPriority(Aes_IRQn, 13); NVIC_SetPriority(Adc_IRQn, 14); NVIC_SetPriority(ClockCal_IRQn, 14); NVIC_SetPriority(Uart2_IRQn, 14); NVIC_SetPriority(Dma_IRQn, 14); NVIC_SetPriority(Uvi_IRQn, 14); NVIC_SetPriority(DbgPwrUp_IRQn, 14); NVIC_SetPriority(Spi2_IRQn, 14); NVIC_SetPriority(I2C2_IRQn, 14); }