IR Recieve
This commit is contained in:
parent
a9cde5ac54
commit
23a2f243c9
8 changed files with 215 additions and 3 deletions
26
ESPMegaPRO-OS-SDK/lib/ESPMegaPRO/IRReceiver.hpp
Normal file
26
ESPMegaPRO-OS-SDK/lib/ESPMegaPRO/IRReceiver.hpp
Normal file
|
@ -0,0 +1,26 @@
|
|||
#pragma once
|
||||
#include <Arduino.h>
|
||||
#include <map>
|
||||
#include <functional>
|
||||
|
||||
struct ir_data_t {
|
||||
unsigned int *data;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Class for receiving IR signals
|
||||
*
|
||||
* @warning Only one IRReceiver can be used at a time
|
||||
*/
|
||||
class IRReceiver {
|
||||
public:
|
||||
static void begin(uint8_t pin);
|
||||
static void start_long_receive();
|
||||
static ir_data_t end_long_receive();
|
||||
private:
|
||||
static uint8_t pin;
|
||||
static void IRAM_ATTR handleInterrupt();
|
||||
static volatile unsigned int irBuffer[1000]; //stores timings - volatile because changed by ISR
|
||||
static volatile unsigned int irBufferPtr; //Pointer thru irBuffer - volatile because changed by ISR
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue