Files
F407-EXTIHandler/Core/Src/Components/EXTIHandler_STM32.hpp

30 lines
716 B
C++

/*
* EXTIHandler_STM32.hpp
*
* Created on: Apr 20, 2024
* Author: Gabriel
*/
#ifndef SRC_COMPONENTS_EXTIHANDLER_STM32_HPP_
#define SRC_COMPONENTS_EXTIHANDLER_STM32_HPP_
#include "main.h"
#include "GPIO_Pin_STM32.hpp"
class EXTIHandler_STM32 {
public:
EXTIHandler_STM32();
virtual ~EXTIHandler_STM32();
static void EXTI_Callback(uint16_t GPIO_Pin);
protected:
int32_t registerCallback(GPIO_Pin_STM32* pin);
int32_t deregisterCallback(GPIO_Pin_STM32* pin);
private:
virtual void irqHandler(void* parameter) = 0;
static int8_t gpioPinToPinNumber(uint16_t GPIO_Pin);
static inline EXTIHandler_STM32* objects[15];
void* _parameter = nullptr;
};
#endif /* SRC_COMPONENTS_EXTIHANDLER_STM32_HPP_ */