Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions Core/Src/Examples/ExampleEXTI.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#ifdef EXAMPLE_EXTI

#include "main.h"
#include "ST-LIB.hpp"

#ifdef TEST_0
// Press the nucleo user button (PC13) to toggle the LED (PB0)

using namespace ST_LIB;
constexpr auto led = ST_LIB::DigitalOutputDomain::DigitalOutput(ST_LIB::PB0);
ST_LIB::DigitalOutputDomain::Instance* g_led;

void toggle_led() { g_led->toggle(); }

constexpr auto exti_req =
ST_LIB::EXTIDomain::Device(ST_LIB::PC13, ST_LIB::EXTIDomain::Trigger::BOTH_EDGES, toggle_led);
using MainBoard = ST_LIB::Board<led, exti_req>;

int main(void) {
MainBoard::init();

static auto& led_instance = MainBoard::instance_of<led>();
g_led = &led_instance;

while (1) {
// led_instance.toggle();
// HAL_Delay(200);
}
}
#endif

#endif
110 changes: 0 additions & 110 deletions Core/Src/Runes/Runes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,6 @@ ADC_HandleTypeDef hadc3;
LPTIM_HandleTypeDef hlptim1;
LPTIM_HandleTypeDef hlptim2;
LPTIM_HandleTypeDef hlptim3;
extern TIM_HandleTypeDef htim1;
extern TIM_HandleTypeDef htim2;
extern TIM_HandleTypeDef htim3;
extern TIM_HandleTypeDef htim4;
extern TIM_HandleTypeDef htim5;
extern TIM_HandleTypeDef htim7;
extern TIM_HandleTypeDef htim8;
extern TIM_HandleTypeDef htim12;
extern TIM_HandleTypeDef htim16;
extern TIM_HandleTypeDef htim17;
extern TIM_HandleTypeDef htim15;
extern TIM_HandleTypeDef htim23;
extern TIM_HandleTypeDef htim24;
UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2;
UART_HandleTypeDef huart3;
Expand Down Expand Up @@ -98,91 +85,6 @@ unordered_map<UART::Peripheral, UART::Instance*> UART::available_uarts = {
uint8_t UART::printf_uart = 0;
bool UART::printf_ready = false;

#endif
/************************************************
* Encoder
***********************************************/
#ifdef HAL_TIM_MODULE_ENABLED
#define BASE TimerPeripheral::TIM_TYPE::BASE

TimerPeripheral encoder_timer(&htim8, {BASE, 0, 65535}, "TIM 8");

map<pair<Pin, Pin>, TimerPeripheral*> Encoder::pin_timer_map = {{{PC6, PC7}, &encoder_timer}};

#endif
/************************************************
* Timer
***********************************************/
#ifdef HAL_TIM_MODULE_ENABLED

#define BASE TimerPeripheral::TIM_TYPE::BASE
#define ADVANCED TimerPeripheral::TIM_TYPE::ADVANCED

TIM_HandleTypeDef* Time::global_timer = &htim2;
set<TIM_HandleTypeDef*> Time::high_precision_timers = {&htim5, &htim24};
TIM_HandleTypeDef* Time::mid_precision_timer = &htim23;

TimerPeripheral timer1(&htim1, {ADVANCED}, "TIM 1");
TimerPeripheral timer2(&htim2, {BASE}, "TIM 2");
TimerPeripheral timer3(&htim3, {ADVANCED}, "TIM 3");
TimerPeripheral timer4(&htim4, {ADVANCED}, "TIM 4");
TimerPeripheral timer12(&htim12, {ADVANCED}, "TIM 12");
TimerPeripheral timer16(&htim16, {BASE}, "TIM 16");
TimerPeripheral timer17(&htim17, {BASE}, "TIM 17");
TimerPeripheral timer15(&htim15, {ADVANCED}, "TIM 15");
TimerPeripheral timer23(&htim23, {BASE, 275, UINT32_MAX - 1}, "TIM 23");

vector<reference_wrapper<TimerPeripheral>> TimerPeripheral::timers =
{timer1, timer2, timer3, timer4, timer12, timer15, timer16, timer17, timer23};

#endif

/************************************************
* PWM
***********************************************/
#ifdef HAL_TIM_MODULE_ENABLED

#define NORMAL TimerPeripheral::PWM_MODE::NORMAL
#define PHASED TimerPeripheral::PWM_MODE::PHASED

PWMmap TimerPeripheral::available_pwm = {
{PB14, {timer12, {TIM_CHANNEL_1, NORMAL}}},
{PB15, {timer12, {TIM_CHANNEL_2, NORMAL}}},
{PB4, {timer3, {TIM_CHANNEL_1, PHASED}}},
{PB5, {timer3, {TIM_CHANNEL_2, NORMAL}}},
{PC8, {timer3, {TIM_CHANNEL_3, NORMAL}}},
{PD12, {timer4, {TIM_CHANNEL_1, NORMAL}}},
{PD13, {timer4, {TIM_CHANNEL_2, NORMAL}}},
{PD15, {timer4, {TIM_CHANNEL_4, NORMAL}}},
{PE14, {timer1, {TIM_CHANNEL_4, PHASED}}},
{PE6, {timer15, {TIM_CHANNEL_2, NORMAL}}},
{PF1, {timer23, {TIM_CHANNEL_2, NORMAL}}},
{PF2, {timer23, {TIM_CHANNEL_3, NORMAL}}},
{PF3, {timer23, {TIM_CHANNEL_4, NORMAL}}},
{PE5, {timer15, {TIM_CHANNEL_1, NORMAL}}},
{PE11, {timer1, {TIM_CHANNEL_2, NORMAL}}},
};

DualPWMmap TimerPeripheral::available_dual_pwms = {
{{PB8, PB6}, {timer16, {TIM_CHANNEL_1, NORMAL}}},
{{PB9, PB7}, {timer17, {TIM_CHANNEL_1, PHASED}}},
{{PE11, PE10}, {timer1, {TIM_CHANNEL_2, PHASED}}},
{{PE13, PE12}, {timer1, {TIM_CHANNEL_3, PHASED}}},
{{PE5, PE4}, {timer15, {TIM_CHANNEL_1, NORMAL}}},
{{PE9, PE8}, {timer1, {TIM_CHANNEL_1, NORMAL}}},
};

#endif

/************************************************
* Input Capture
***********************************************/
#ifdef HAL_TIM_MODULE_ENABLED

map<Pin, InputCapture::Instance> InputCapture::available_instances = {
{PF0, InputCapture::Instance(PF0, &timer23, TIM_CHANNEL_1, TIM_CHANNEL_2)}
};

#endif

/************************************************
Expand Down Expand Up @@ -262,18 +164,6 @@ uint32_t ADC::ranks[16] = {
#endif
#endif

/************************************************
* EXTI
***********************************************/
#ifdef HAL_EXTI_MODULE_ENABLED

map<uint16_t, ExternalInterrupt::Instance> ExternalInterrupt::instances = {
{PE0.gpio_pin, Instance(EXTI0_IRQn)},
{PE1.gpio_pin, Instance(EXTI1_IRQn)}
};

#endif

/************************************************
* I2C
***********************************************/
Expand Down
2 changes: 1 addition & 1 deletion Core/Src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ constexpr auto led = ST_LIB::DigitalOutputDomain::DigitalOutput(ST_LIB::PF13);
using MainBoard = ST_LIB::Board<led>;

#if !defined(EXAMPLE_ADC) && !defined(EXAMPLE_ETHERNET) && !defined(EXAMPLE_MPU) && \
!defined(EXAMPLE_HARDFAULT)
!defined(EXAMPLE_HARDFAULT) && !defined(EXAMPLE_EXTI)
int main(void) {
MainBoard::init();

Expand Down
Loading