This commit is contained in:
DashyFox 2024-04-24 10:35:02 +03:00
parent d46640b145
commit 96f0ac623e

View File

@ -4,9 +4,6 @@
#include "MemoryCheck.h" #include "MemoryCheck.h"
/////////////// Pinout /////////////// /////////////// Pinout ///////////////
#define encForward_PIN PA0
#define encBackward_PIN PA1
#define dec0_PIN PB0 #define dec0_PIN PB0
#define dec1_PIN PB1 #define dec1_PIN PB1
#define dec2_PIN PA2 #define dec2_PIN PA2
@ -44,16 +41,23 @@
#define SERIAL_SPEED 115200 #define SERIAL_SPEED 115200
//////////////// Var ///////////////// //////////////// Var /////////////////
// IR_Encoder encForward(PA5, 42 /* , &decBackward */);
IR_Encoder enc0(PA5, 42 /* , &decBackward */);
IR_Encoder enc1(PA4, 127 /* , &decBackward */);
IR_Encoder enc2(PA3, 137 /* , &decBackward */);
IR_Encoder enc3(PA0, 777 /* , &decBackward */);
IR_Encoder enc10(PC15, 555 /* , &decBackward */);
// IR_Encoder enc11(PC14, 127 /* , &decBackward */);
// IR_Encoder enc12(PC13, 137 /* , &decBackward */);
// IR_Encoder enc13(PA12, 777 /* , &decBackward */);
IR_Encoder encForward(PA5, 42 /* , &decBackward */);
// IR_Encoder encBackward(321, encBackward_PIN);
// IR_Encoder encTree(325, A2); // IR_Encoder encTree(325, A2);
//////////////////////// Функции прерываний //////////////////////// //////////////////////// Функции прерываний ////////////////////////
void EncoderISR() void EncoderISR()
{ {
// Serial.println("EncoderISR");
IR_Encoder::isr(); IR_Encoder::isr();
} }
@ -86,84 +90,94 @@ uint8_t sig = 0;
uint16_t targetAddr = IR_Broadcast; uint16_t targetAddr = IR_Broadcast;
Timer t1(500, millis, []() Timer t1(500, millis, []()
{ {
// Serial.println( digitalPinToBitMask(enc0.getPin()), BIN);
enc0.sendData(IR_Broadcast, data4, sizeof(data4));
enc1.sendData(IR_Broadcast, data3, sizeof(data3));
enc2.sendData(IR_Broadcast, data2, sizeof(data2));
enc3.sendData(IR_Broadcast, data1, sizeof(data1));
enc10.sendData(IR_Broadcast, data4, sizeof(data4));
// enc11.sendData(IR_Broadcast, data3, sizeof(data3));
// enc12.sendData(IR_Broadcast, data2, sizeof(data2));
// enc13.sendData(IR_Broadcast, data1, sizeof(data1));
// Serial.println(sig); // Serial.println(sig);
switch (sig) // switch (sig)
{ // {
case 0: // case 0:
encForward.sendData(targetAddr); // encForward.sendData(targetAddr);
break; // break;
case 1: // case 1:
encForward.sendData(targetAddr, data1, sizeof(data1)); // encForward.sendData(targetAddr, data1, sizeof(data1));
break; // break;
case 2: // case 2:
encForward.sendData(targetAddr, data2, sizeof(data2)); // encForward.sendData(targetAddr, data2, sizeof(data2));
break; // break;
case 3: // case 3:
encForward.sendData(targetAddr, data3, sizeof(data3)); // encForward.sendData(targetAddr, data3, sizeof(data3));
break; // break;
case 4: // case 4:
encForward.sendData(targetAddr, data4, sizeof(data4)); // encForward.sendData(targetAddr, data4, sizeof(data4));
break; // break;
case 10: // case 10:
encForward.sendData(targetAddr, data0, sizeof(data0), true); // encForward.sendData(targetAddr, data0, sizeof(data0), true);
break; // break;
case 11: // case 11:
encForward.sendData(targetAddr, data1, sizeof(data1), true); // encForward.sendData(targetAddr, data1, sizeof(data1), true);
break; // break;
case 12: // case 12:
encForward.sendData(targetAddr, data2, sizeof(data2), true); // encForward.sendData(targetAddr, data2, sizeof(data2), true);
break; // break;
case 13: // case 13:
encForward.sendData(targetAddr, data3, sizeof(data3), true); // encForward.sendData(targetAddr, data3, sizeof(data3), true);
break; // break;
case 14: // case 14:
encForward.sendData(targetAddr, data4, sizeof(data4), true); // encForward.sendData(targetAddr, data4, sizeof(data4), true);
break; // break;
case 20: // case 20:
encForward.sendBack(); // encForward.sendBack();
break; // break;
case 21: // case 21:
encForward.sendBack(data1, sizeof(data1)); // encForward.sendBack(data1, sizeof(data1));
break; // break;
case 22: // case 22:
encForward.sendBack(data2, sizeof(data2)); // encForward.sendBack(data2, sizeof(data2));
break; // break;
case 23: // case 23:
encForward.sendBack(data3, sizeof(data3)); // encForward.sendBack(data3, sizeof(data3));
break; // break;
case 24: // case 24:
encForward.sendBack(data4, sizeof(data4)); // encForward.sendBack(data4, sizeof(data4));
break; // break;
case 30: // case 30:
encForward.sendBackTo(targetAddr); // encForward.sendBackTo(targetAddr);
break; // break;
case 31: // case 31:
encForward.sendBackTo(targetAddr, data1, sizeof(data1)); // encForward.sendBackTo(targetAddr, data1, sizeof(data1));
break; // break;
case 32: // case 32:
encForward.sendBackTo(targetAddr, data2, sizeof(data2)); // encForward.sendBackTo(targetAddr, data2, sizeof(data2));
break; // break;
case 33: // case 33:
encForward.sendBackTo(targetAddr, data3, sizeof(data3)); // encForward.sendBackTo(targetAddr, data3, sizeof(data3));
break; // break;
case 34: // case 34:
encForward.sendBackTo(targetAddr, data4, sizeof(data4)); // encForward.sendBackTo(targetAddr, data4, sizeof(data4));
break; // break;
case 41: // case 41:
encForward.sendRequest(targetAddr); // encForward.sendRequest(targetAddr);
break; // break;
case 42: // case 42:
encForward.sendAccept(targetAddr); // encForward.sendAccept(targetAddr);
break; // break;
default: // default:
break; // break;
} // }
// encBackward.sendData(IR_Broadcast, data2); // encBackward.sendData(IR_Broadcast, data2);
// encTree.sendData(IR_Broadcast, rawData3); // encTree.sendData(IR_Broadcast, rawData3);
}); });
@ -192,23 +206,40 @@ void setup()
pinMode(dec1_PIN, INPUT_PULLUP); pinMode(dec1_PIN, INPUT_PULLUP);
// pinMode(dec2_PIN, INPUT_PULLUP); // pinMode(dec2_PIN, INPUT_PULLUP);
pinMode(encForward_PIN, OUTPUT); static IR_DecoderRaw *blind[]{
pinMode(encBackward_PIN, OUTPUT); &dec0,
&dec1,
&dec2,
&dec3,
&dec4,
&dec5,
&dec6,
&dec7,
&dec8,
&dec9,
&dec10,
&dec11,
&dec12,
&dec13,
};
// IR_DecoderRaw* blindFromForward [] { &decForward, &decBackward }; enc0.setBlindDecoders(blind, sizeof(blind) / sizeof(IR_DecoderRaw *));
// encForward.setBlindDecoders(blindFromForward, sizeof(blindFromForward) / sizeof(IR_DecoderRaw*)); enc1.setBlindDecoders(blind, sizeof(blind) / sizeof(IR_DecoderRaw *));
enc2.setBlindDecoders(blind, sizeof(blind) / sizeof(IR_DecoderRaw *));
enc3.setBlindDecoders(blind, sizeof(blind) / sizeof(IR_DecoderRaw *));
enc10.setBlindDecoders(blind, sizeof(blind) / sizeof(IR_DecoderRaw *));
decSetup(0); decSetup(0);
decSetup(1); // decSetup(1);
decSetup(2); // decSetup(2);
decSetup(3); // decSetup(3);
decSetup(4); // decSetup(4);
decSetup(5); // decSetup(5);
decSetup(6); // decSetup(6);
decSetup(7); // decSetup(7);
decSetup(8); // decSetup(8);
decSetup(9); // decSetup(9);
decSetup(10); // decSetup(10);
decSetup(11); decSetup(11);
decSetup(12); decSetup(12);
decSetup(13); decSetup(13);
@ -300,7 +331,7 @@ void status(IR_Decoder &dec)
if (/* dec.gotData.getDataPrt()[1] */ 1) if (/* dec.gotData.getDataPrt()[1] */ 1)
{ {
str += ("Data on pin "); str += ("Data on pin ");
str += (dec.isrPin); str += (dec.getPin());
str += "\n"; str += "\n";
uint8_t msg = dec.gotData.getMsgRAW(); uint8_t msg = dec.gotData.getMsgRAW();
@ -374,7 +405,7 @@ void status(IR_Decoder &dec)
if (/* dec.gotData.getDataPrt()[1] */ 1) if (/* dec.gotData.getDataPrt()[1] */ 1)
{ {
str += ("BackData on pin "); str += ("BackData on pin ");
str += (dec.isrPin); str += (dec.getPin());
str += "\n"; str += "\n";
uint8_t msg = dec.gotBackData.getMsgRAW(); uint8_t msg = dec.gotBackData.getMsgRAW();
@ -446,7 +477,7 @@ void status(IR_Decoder &dec)
if (/* dec.gotData.getDataPrt()[1] */ 1) if (/* dec.gotData.getDataPrt()[1] */ 1)
{ {
str += ("Accept on pin "); str += ("Accept on pin ");
str += (dec.isrPin); str += (dec.getPin());
str += "\n"; str += "\n";
uint8_t msg = dec.gotAccept.getMsgRAW(); uint8_t msg = dec.gotAccept.getMsgRAW();
@ -498,7 +529,7 @@ void status(IR_Decoder &dec)
if (/* dec.gotData.getDataPrt()[1] */ 1) if (/* dec.gotData.getDataPrt()[1] */ 1)
{ {
str += ("Request on pin "); str += ("Request on pin ");
str += (dec.isrPin); str += (dec.getPin());
str += "\n"; str += "\n";
uint8_t msg = dec.gotRequest.getMsgRAW(); uint8_t msg = dec.gotRequest.getMsgRAW();