30 lines
716 B
C++
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_ */
|