mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2026-09-21 12:29:35 +00:00
102 lines
2.1 KiB
C++
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;
|
|
}
|
|
|