diff --git a/src/entrypoints/heli-entry.cpp b/src/entrypoints/heli-entry.cpp index 17450c9ebed185876d78cb1284f0a06d16959b43..0c5621e398940f3d62086ca0afaf113d2b7ea43e 100644 --- a/src/entrypoints/heli-entry.cpp +++ b/src/entrypoints/heli-entry.cpp @@ -23,6 +23,10 @@ #include <Common.h> #include <stdexcept> +#include <events/EventBroker.h> +#include <scheduler/TaskScheduler.h> + +#include <drivers/HardwareTimer.h> #include "HeliTest/config.h" #include "ButtonHandler.h" @@ -30,19 +34,13 @@ #include "HeliTest/FlightModeManager/HeliFMM.h" #include "HeliTest/PinObserverWrapper.h" #include "HeliTest/ScreenManager.h" +#include "HeliTest/config.h" +#include "PinStatus.h" #include "SensorManager/SensorManager.h" #include "SharedThreadIDs.h" #include "SystemDiagnostics/SystemDiagnostics.h" -#include "HeliTest/config.h" #include "hwmapping.h" -#include "events/EventBroker.h" -#include "scheduler/TaskScheduler.h" - -#include "drivers/HardwareTimer.h" - -#include "PinStatus.h" - using std::runtime_error; using namespace miosix; @@ -54,8 +52,9 @@ using ButtonHandler_t = ButtonHandler<interfaces::buttons::user>; ButtonHandler_t* btnHandler; TaskScheduler* scheduler; -ScreenManager* screen; SensorManager* sensorManager; +ScreenManager* screen; + HeliFMM* fmm; PinObserverWrapper* pinObserver; Logger& logger = Logger::instance(); @@ -67,22 +66,28 @@ void onButtonPressCallback(ButtonHandler_t::ButtonPress type); void initComponents() { EventBroker::getInstance(); - scheduler = new TaskScheduler(); - btnHandler = new ButtonHandler_t(1, &onButtonPressCallback); - sensorManager = new SensorManager(scheduler); + + btnHandler = new ButtonHandler_t(1, &onButtonPressCallback); + scheduler = new TaskScheduler(); + fmm = HeliFMM::getInstance(); + + sensorManager = new SensorManager(scheduler); screen = new ScreenManager(sensorManager); - fmm = HeliFMM::getInstance(); - pinObserver = new PinObserverWrapper(); - PWM::Timer t{ - TIM4, &(RCC->APB1ENR), RCC_APB1ENR_TIM4EN, - TimerUtils::getPrescalerInputFrequency(TimerUtils::InputClock::APB1)}; + pinObserver = new PinObserverWrapper(); } void initPins() { - // FastInterruptDisableLock d; - DETACHMENT_PIN::mode(DETACHMENT_PIN_MODE); + { + FastInterruptDisableLock d; + + DETACHMENT_PIN::mode(DETACHMENT_PIN_MODE); + CUTTER_ENA::mode(Mode::OUTPUT); + CUTTER_IN::mode(Mode::ALTERNATE); + CUTTER_IN::alternateFunction(2); + //CUTTER_CSENSE::mode(Mode::INPUT); + } red_led::mode(Mode::OUTPUT); green_led::mode(Mode::OUTPUT); @@ -137,26 +142,6 @@ int main() } } -/** - * @brief Called when the specified state change is the detected on a pin - * - * @param port - * @param num - */ -void onPinDisconnectedCallback(unsigned int port, unsigned int num) -{ - TRACE("Pin callback: port:%d num:%d\n", port, num); - if (port == pin1_port && num == pin1_num) - { - sEventBroker->post({EV_HELIPIN_DISCONNECTED}, TOPIC_FSM); - } - - if (port == pin2_port && num == pin2_num) - { - sEventBroker->post({EV_PARACHUTEPIN_DISCONNECTED}, TOPIC_FSM); - } -} - void onButtonPressCallback(ButtonHandler_t::ButtonPress type) {