#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; }