Files
IR-protocol/IR-protocol.ino
2024-04-22 17:04:32 +03:00

102 lines
2.1 KiB
C++

#include "IR_Decoder.h"
#include "IR_Encoder.h"
#include "TimerStatic.h"
#include "MemoryCheck.h"
/////////////// Pinout ///////////////
#define dec0_PIN PB15
#define dec1_PIN PB1
#define dec2_PIN PB2
#define dec3_PIN PB3
#define dec4_PIN PB4
#define dec5_PIN PB5
#define dec6_PIN PB6
#define dec7_PIN PB7
#define dec8_PIN PB8
#define dec9_PIN PB9
#define dec10_PIN PB10
#define dec11_PIN PB11
#define dec12_PIN PB12
#define dec13_PIN PB13
#define dec14_PIN PB14
#define dec15_PIN PB15
// #define LoopOut PA7
//////////////// Ini /////////////////
#define INFO "IR_FOX TEST"
#define SERIAL_SPEED 115200
//////////////// Var /////////////////
IR_Decoder dec0(dec1_PIN, 0);
// IR_Decoder dec1(dec2_PIN, 1);
//////////////////////// Функции прерываний ////////////////////////
//------------------------------------------------------------------
// #define dec_ISR(n) void dec_##n##_ISR() { dec##n.isr(); }
// #define decPinMode(n) pinMode(dec##n##_PIN, INPUT_PULLUP);
// #define decAttach(n) attachInterrupt(dec##n##_PIN, dec_##n##_ISR, CHANGE);
// #define decSetup(n) decPinMode(n); decAttach(n);
// #define decTick(n) dec##n.tick();
// #define decStat(n) rx_flag |= statusSimple(dec##n);
// dec_ISR(0);
// dec_ISR(1);
void dec_0_ISR() {
dec0.isr();
}
/////////////////////////////////////////////////////////////////////
Timer t1(50, millis, []()
{ digitalToggle(LED_BUILTIN); });
/////////////////////////////////////////////////////////////////////
void setup()
{
Serial.begin(SERIAL_SPEED);
Serial.println(F(INFO));
// pinMode(LoopOut, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(dec0_PIN, INPUT_PULLUP);
attachInterrupt(dec0_PIN, dec_0_ISR, CHANGE);
}
void loop()
{
// digitalToggle(LoopOut);
Timer::tick();
dec0.tick();
bool rx_flag;
rx_flag |= statusSimple(dec0);
if(rx_flag){
Serial.print("\n\n\n\n");
}
}
////////////////////////////////////////////////////////////////////////
bool statusSimple(IR_Decoder &dec){
bool ret;
if (ret = dec.gotData.available())
{
Serial.print("DEC "); Serial.println(dec.id);
}
return ret;
}