diff --git a/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/bsp.cpp b/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/bsp.cpp index 45beb99b4437c6bd99c4ca3837411323f14c273e..34eb213a202ec2a1219f1ce65db69bed0b3809b1 100644 --- a/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/bsp.cpp +++ b/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/bsp.cpp @@ -376,6 +376,13 @@ void IRQbspInit() can::tx::mode(Mode::ALTERNATE); can::tx::alternateFunction(9); + timers::tim4ch1::mode(Mode::ALTERNATE); + timers::tim4ch1::alternateFunction(2); + timers::tim8ch2::mode(Mode::ALTERNATE); + timers::tim8ch2::alternateFunction(3); + + camMosfet::mode(Mode::OUTPUT); + using namespace sensors; ads1118::cs::mode(Mode::OUTPUT); @@ -400,14 +407,10 @@ void IRQbspInit() using namespace inputs; vbat::mode(Mode::INPUT_ANALOG); - launchpad::mode(Mode::INPUT); - nosecone_detach::mode(Mode::INPUT); expulsion::mode(Mode::INPUT); using namespace actuators; - nosecone::servo::mode(Mode::ALTERNATE); - nosecone::servo::alternateFunction(2); nosecone::th_cut_input::mode(Mode::OUTPUT); nosecone::thermal_cutter_1::enable::mode(Mode::OUTPUT); @@ -418,13 +421,9 @@ void IRQbspInit() nosecone::thermal_cutter_2::enable::low(); nosecone::thermal_cutter_2::cutter_sens::mode(Mode::INPUT_ANALOG); - airbrakes::servo::mode(Mode::ALTERNATE); - airbrakes::servo::alternateFunction(3); - using namespace aux; sense_aux_1::mode(Mode::INPUT); - sense_aux_2::mode(Mode::INPUT); aux_pd_pu::mode(Mode::OUTPUT); aux_spi1_cs::mode(Mode::OUTPUT); @@ -433,6 +432,7 @@ void IRQbspInit() led_red1::mode(Mode::OUTPUT); led_red2::mode(Mode::OUTPUT); led_blue1::mode(Mode::OUTPUT); + led_ring::mode(Mode::OUTPUT); using namespace xbee; diff --git a/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/bsp_impl.h b/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/bsp_impl.h index a2610bfa58d95946c53c4790ceb9f43f5e1bd98d..bff22d95fc9531e9ff1db521763d138b733118ad 100644 --- a/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/bsp_impl.h +++ b/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/bsp_impl.h @@ -23,22 +23,23 @@ * * * You should have received a copy of the GNU General Public License * * along with this program; if not, see <http://www.gnu.org/licenses/> * - ***************************************************************************/ + ***************************************************************************/ /*********************************************************************** -* bsp_impl.h Part of the Miosix Embedded OS. -* Board support package, this file initializes hardware. -************************************************************************/ + * bsp_impl.h Part of the Miosix Embedded OS. + * Board support package, this file initializes hardware. + ************************************************************************/ #ifndef BSP_IMPL_H #define BSP_IMPL_H #include "config/miosix_settings.h" -#include "interfaces/gpio.h" #include "drivers/stm32_hardware_rng.h" #include "hwmapping.h" +#include "interfaces/gpio.h" -namespace miosix { +namespace miosix +{ /** \addtogroup Hardware @@ -60,17 +61,19 @@ void configureSdram(); inline void ledOn() { leds::led_blue1::high(); + leds::led_ring::high(); } inline void ledOff() { leds::led_blue1::low(); + leds::led_ring::low(); } /** \} */ -} //namespace miosix +} // namespace miosix -#endif //BSP_IMPL_H +#endif // BSP_IMPL_H diff --git a/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/hwmapping.h b/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/hwmapping.h index 538693af22384722d9946af1c0a8dc153971757c..c191b1381cfcd31c43b90f2653b3b04ad582e39d 100644 --- a/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/hwmapping.h +++ b/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_death_stack_x/interfaces-impl/hwmapping.h @@ -76,12 +76,22 @@ using tx = Gpio<GPIOA_BASE, 0>; using rx = Gpio<GPIOA_BASE, 1>; } // namespace uart4 +// CAN1 namespace can -{ // CAN1 +{ using rx = Gpio<GPIOA_BASE, 11>; using tx = Gpio<GPIOA_BASE, 12>; } // namespace can +// Servo motors timers +namespace timers +{ +using tim4ch1 = Gpio<GPIOD_BASE, 12>; // Servo 1 +using tim8ch2 = Gpio<GPIOC_BASE, 7>; // Servo 2 +} // namespace timers + +using camMosfet = Gpio<GPIOC_BASE, 14>; + } // namespace interfaces namespace sensors @@ -119,19 +129,23 @@ using cs = Gpio<GPIOD_BASE, 7>; namespace inputs { -using vbat = Gpio<GPIOF_BASE, 7>; -using launchpad = Gpio<GPIOE_BASE, 4>; // launchpad detach -using nosecone_detach = Gpio<GPIOC_BASE, 14>; // nosecone detach -using expulsion = Gpio<GPIOB_BASE, 7>; // expulsion sensor +using vbat = Gpio<GPIOF_BASE, 7>; +using expulsion = Gpio<GPIOE_BASE, 4>; } // namespace inputs namespace actuators { +namespace servos +{ +using servo1 = interfaces::timers::tim4ch1; +using servo2 = interfaces::timers::tim8ch2; +} // namespace servos + namespace nosecone { -using servo = Gpio<GPIOD_BASE, 12>; // Pwm expulsion servo, TIM4_CH1 -using th_cut_input = Gpio<GPIOE_BASE, 6>; // Input thermal cutters + +using th_cut_input = Gpio<GPIOE_BASE, 6>; // Input thermal cutters namespace thermal_cutter_1 { @@ -147,17 +161,11 @@ using cutter_sens = Gpio<GPIOF_BASE, 8>; // ADC3 CH6 } // namespace nosecone -namespace airbrakes -{ -using servo = Gpio<GPIOC_BASE, 7>; // Airbrakes PWM, TIM8_CH2 -} // namespace airbrakes - } // namespace actuators namespace aux { using sense_aux_1 = Gpio<GPIOE_BASE, 2>; -using sense_aux_2 = Gpio<GPIOE_BASE, 3>; using aux_pd_pu = Gpio<GPIOC_BASE, 5>; using aux_spi1_cs = Gpio<GPIOG_BASE, 7>; } // namespace aux @@ -167,14 +175,15 @@ namespace leds using led_red1 = Gpio<GPIOG_BASE, 7>; using led_red2 = Gpio<GPIOG_BASE, 10>; using led_blue1 = Gpio<GPIOG_BASE, 14>; +using led_ring = Gpio<GPIOE_BASE, 3>; /** - * These are conencted to the enable pin of the thermal cutters and the cs of + * These are connected to the enable pin of the thermal cutters and the cs of * the lis3mdl magnetometer. */ -using led_blue2 = Gpio<GPIOG_BASE, 2>; -using led_green1 = Gpio<GPIOG_BASE, 6>; -using led_green2 = Gpio<GPIOD_BASE, 11>; +// using led_blue2 = Gpio<GPIOG_BASE, 2>; +// using led_green1 = Gpio<GPIOG_BASE, 6>; +// using led_green2 = Gpio<GPIOD_BASE, 11>; } // namespace leds namespace xbee