Added libraries and firmware skeleton

This commit is contained in:
Emanuele Trabattoni
2026-03-24 17:07:49 +01:00
parent 9240a0be41
commit 948120c001
15 changed files with 1390 additions and 0 deletions

40
RotaxMonitor/src/isr.h Normal file
View File

@@ -0,0 +1,40 @@
#include <Arduino.h>
// =====================
// Event Flags (bitmask)
// =====================
#define PKDT_FLAG_AP (1 << 0)
#define PKDT_FLAG_AN (1 << 1)
#define PKDT_FLAG_BP (1 << 2)
#define PKDT_FLAG_BN (1 << 3)
// Task handle
TaskHandle_t pkdtTaskHandle = NULL;
// =====================
// ISR (Pass return bitmask to ISR management function)
// one function for each wake up pin conncted to a trigger
// =====================
void IRAM_ATTR pkdt_isr_ap() {
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
xTaskNotifyFromISR(pkdtTaskHandle, PKDT_FLAG_AP, eSetBits, &xHigherPriorityTaskWoken);
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
void IRAM_ATTR pkdt_isr_an() {
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
xTaskNotifyFromISR(pkdtTaskHandle, PKDT_FLAG_AN, eSetBits, &xHigherPriorityTaskWoken);
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
void IRAM_ATTR pkdt_isr_bp() {
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
xTaskNotifyFromISR(pkdtTaskHandle, PKDT_FLAG_BP, eSetBits, &xHigherPriorityTaskWoken);
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
void IRAM_ATTR pkdt_isr_bn() {
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
xTaskNotifyFromISR(pkdtTaskHandle, PKDT_FLAG_BN, eSetBits, &xHigherPriorityTaskWoken);
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}