mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2025-05-04 07:10:16 +00:00
auto begin
This commit is contained in:
parent
aa0b478229
commit
6ba8fdffe4
@ -41,19 +41,17 @@ IR_Encoder::IR_Encoder(uint8_t pin, uint16_t addr, IR_DecoderRaw *decPair, bool
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
HardwareTimer IR_Encoder::IR_Timer;
|
HardwareTimer* IR_Encoder::IR_Timer = nullptr;
|
||||||
|
|
||||||
inline HardwareTimer* IR_Encoder::get_IR_Timer(){return &IR_Encoder::IR_Timer;}
|
inline HardwareTimer* IR_Encoder::get_IR_Timer(){return IR_Encoder::IR_Timer;}
|
||||||
// void Encoder_ISR(){
|
|
||||||
// IR_Encoder::isr();
|
void IR_Encoder::begin(HardwareTimer* timer, uint8_t channel, IRQn_Type IRQn, uint8_t priority){
|
||||||
// }
|
IR_Timer = timer;
|
||||||
void IR_Encoder::begin(HardwareTimer timer, uint8_t channel, IRQn_Type IRQn){
|
if(IR_Timer == nullptr) return;
|
||||||
//TODO: check std::bind isr func
|
IR_Timer->setOverflow(carrierFrec * 2, HERTZ_FORMAT);
|
||||||
// IR_Timer = timer;
|
IR_Timer->attachInterrupt(channel, IR_Encoder::isr);
|
||||||
// IR_Timer.setOverflow(carrierFrec * 2, HERTZ_FORMAT);
|
NVIC_SetPriority(IRQn, priority);
|
||||||
// IR_Timer.attachInterrupt(channel, Encoder_ISR);
|
IR_Timer->resume();
|
||||||
// NVIC_SetPriority(IRQn, 0);
|
|
||||||
// IR_Timer.resume();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ class IR_Encoder : public IR_FOX
|
|||||||
static IR_Encoder *last;
|
static IR_Encoder *last;
|
||||||
IR_Encoder *next;
|
IR_Encoder *next;
|
||||||
public:
|
public:
|
||||||
static HardwareTimer IR_Timer;
|
static HardwareTimer* IR_Timer;
|
||||||
private:
|
private:
|
||||||
// uint16_t id; /// @brief Адрес передатчика
|
// uint16_t id; /// @brief Адрес передатчика
|
||||||
public:
|
public:
|
||||||
@ -21,7 +21,7 @@ public:
|
|||||||
/// @param decPair Приёмник, для которого отключается приём в момент передачи передатчиком
|
/// @param decPair Приёмник, для которого отключается приём в момент передачи передатчиком
|
||||||
IR_Encoder(uint8_t pin, uint16_t addr = 0, IR_DecoderRaw *decPair = nullptr, bool autoHandle = true);
|
IR_Encoder(uint8_t pin, uint16_t addr = 0, IR_DecoderRaw *decPair = nullptr, bool autoHandle = true);
|
||||||
static void isr();
|
static void isr();
|
||||||
static void begin(HardwareTimer IR_Timer, uint8_t channel, IRQn_Type IRQn);
|
static void begin(HardwareTimer* IR_Timer, uint8_t channel, IRQn_Type IRQn, uint8_t priority);
|
||||||
static HardwareTimer* get_IR_Timer();
|
static HardwareTimer* get_IR_Timer();
|
||||||
|
|
||||||
void enable();
|
void enable();
|
||||||
@ -46,9 +46,9 @@ public:
|
|||||||
~IR_Encoder();
|
~IR_Encoder();
|
||||||
volatile bool ir_out_virtual;
|
volatile bool ir_out_virtual;
|
||||||
|
|
||||||
|
void _isr();
|
||||||
private:
|
private:
|
||||||
void _sendBack(bool isAdressed, uint16_t addrTo, uint8_t *data, uint8_t len);
|
void _sendBack(bool isAdressed, uint16_t addrTo, uint8_t *data, uint8_t len);
|
||||||
void _isr();
|
|
||||||
|
|
||||||
void setDecoder_isSending();
|
void setDecoder_isSending();
|
||||||
void sendByte(uint8_t byte, bool *prev, bool LOW_FIRST);
|
void sendByte(uint8_t byte, bool *prev, bool LOW_FIRST);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user