digitalio: add interrupt support and append to rotary

This commit is contained in:
Vasily Davydov
2023-04-26 18:19:42 +03:00
parent 809358b341
commit a57f814875
4 changed files with 89 additions and 4 deletions

View File

@@ -6,8 +6,36 @@
*/
#include "Rotary.h"
#include "board.h"
Rotary::Rotary(ThreadCommon::QueueManager* qm) : _qm(qm) {}
extern "C"
{
void
PIN_INT0_IRQHandler (void)
{
//portEND_SWITCHING_ISR ();
}
void
PIN_INT1_IRQHandler (void)
{
//portEND_SWITCHING_ISR ();
}
void
PIN_INT2_IRQHandler (void)
{
//portEND_SWITCHING_ISR ();
}
}
// For example
#define GPIO_PININT_PIN 1 /* GPIO pin number mapped to PININT */
#define GPIO_PININT_PORT 0 /* GPIO port number mapped to PININT */
Rotary::Rotary(ThreadCommon::QueueManager* qm) : _qm(qm)
{
}
Rotary::~Rotary() {}

View File

@@ -10,6 +10,7 @@
#include "Event.h"
#include "ThreadCommon.h"
#include "DigitalIoPin.h"
class Rotary {
public:
@@ -19,6 +20,9 @@ public:
private:
Event* message;
ThreadCommon::QueueManager* _qm;
DigitalIoPin signal[3] = { { 0, 6, true, false, false, true, PIN_INT0_IRQn},
{ 0, 5, true, false, false, true, PIN_INT1_IRQn},
{ 1, 8, true, false, false, true, PIN_INT2_IRQn} };
};
void rotary_thread(void* pvParams);