This library provide tracking input signals and generate event on signal change
This library used for handle input signals
it's based on HAL layer user can port library to every hardware
for port library user must implement following functions
initPin - configure pin based on input PinConfig
void Signal_initPin(const Signal_PinConfig* config);
deinitPin - reset pin to register reset value
void Signal_deInitPin(const Signal_PinConfig* config);
readPin - read pin and return 1 or 0
uint8_t Signal_readPin(const Signal_PinConfig* config);
and in the final step give Signal_Driver to Signal_init function remember deinitPin function it's optional and can be disable in Configuration
const Signal_Driver signalpadDriver = {
Signal_initPin,
Signal_readPin,
#if SIGNAL_IO_DEINIT
Signal_deInitPin,
#endif
};
//...
Signal_init(&signalDriver);
in the configuration part in top of Key.h user can change and customize library based on what need in project
define KEY_MULTI_CALLBACK if u want have sperate callback functions for each state such as Signal_onFalling, Signal_onLow, Signal_onRising
user must define deinitPin function in Signal_Driver
if signal is based on pair of GPIO and Pin num must enable it for arduino must disable it
hold signal io user can change it to GPIO_TypeDef or anything else that system want
hold signal pin num or pin bit user can change it to uint8_t for 8-bit systems like AVR
maximum number of signals -1 for unlimited, lib use linked list x for limited signals, lib use pointer array