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