no define

This commit is contained in:
DashyFox 2025-01-23 09:41:10 +03:00
parent 30ad816c2a
commit d1cb167aaf
2 changed files with 91 additions and 93 deletions

View File

@ -1,5 +1,7 @@
{ {
"board": "STMicroelectronics:stm32:GenF4", "board": "STMicroelectronics:stm32:GenF4",
"port": "COM17", "port": "COM17",
"prebuild": "if exist bin rd /s /q bin" "prebuild": "if exist bin rd /s /q bin",
"configuration": "clock=25MHz,pnum=MAKET_F401RETX,upload_method=swdMethod,xserial=generic,usb=CDCgen,xusb=FS,opt=osstd,dbg=none,rtlib=nano",
"sketch": "IR-protocol.ino"
} }

View File

@ -23,18 +23,6 @@
#define LoopOut PC13 #define LoopOut PC13
#define dec_ISR(n) \
void dec_##n##_ISR() { dec##n.isr(); }
#define dec_Ini(n) \
IR_Decoder dec##n(dec##n##_PIN, n); \
dec_ISR(n)
#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 |= status/* Simple */(dec##n);
//////////////// Ini ///////////////// //////////////// Ini /////////////////
#define INFO "IR_FOX TEST" #define INFO "IR_FOX TEST"
@ -63,20 +51,47 @@ void EncoderISR()
//------------------------------------------------------------------- //-------------------------------------------------------------------
dec_Ini(0); IR_Decoder dec0(dec0_PIN, 0);
dec_Ini(1); void dec_0_ISR() { dec0.isr(); }
dec_Ini(2);
dec_Ini(3); IR_Decoder dec1(dec1_PIN, 1);
dec_Ini(4); void dec_1_ISR() { dec1.isr(); }
dec_Ini(5);
dec_Ini(6); IR_Decoder dec2(dec2_PIN, 2);
dec_Ini(7); void dec_2_ISR() { dec2.isr(); }
// dec_Ini(8);
// dec_Ini(9); IR_Decoder dec3(dec3_PIN, 3);
// dec_Ini(10); void dec_3_ISR() { dec3.isr(); }
// dec_Ini(11);
// dec_Ini(12); IR_Decoder dec4(dec4_PIN, 4);
// dec_Ini(13); void dec_4_ISR() { dec4.isr(); }
IR_Decoder dec5(dec5_PIN, 5);
void dec_5_ISR() { dec5.isr(); }
IR_Decoder dec6(dec6_PIN, 6);
void dec_6_ISR() { dec6.isr(); }
IR_Decoder dec7(dec7_PIN, 7);
void dec_7_ISR() { dec7.isr(); }
// IR_Decoder dec8(dec8_PIN, 8);
// void dec_8_ISR() { dec8.isr(); }
// IR_Decoder dec9(dec9_PIN, 9);
// void dec_9_ISR() { dec9.isr(); }
// IR_Decoder dec10(dec10_PIN, 10);
// void dec_10_ISR() { dec10.isr(); }
// IR_Decoder dec11(dec11_PIN, 11);
// void dec_11_ISR() { dec11.isr(); }
// IR_Decoder dec12(dec12_PIN, 12);
// void dec_12_ISR() { dec12.isr(); }
// IR_Decoder dec13(dec13_PIN, 13);
// void dec_13_ISR() { dec13.isr(); }
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
uint8_t data0[] = {}; uint8_t data0[] = {};
@ -88,6 +103,7 @@ uint8_t data4[] = {42, 127, 137, 255};
uint32_t loopTimer; uint32_t loopTimer;
uint8_t sig = 0; 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); // Serial.println( digitalPinToBitMask(enc0.getPin()), BIN);
@ -181,6 +197,7 @@ Timer t1(500, millis, []()
// encBackward.sendData(IR_Broadcast, data2); // encBackward.sendData(IR_Broadcast, data2);
// encTree.sendData(IR_Broadcast, rawData3); // encTree.sendData(IR_Broadcast, rawData3);
}); });
// Timer t2(50, millis, []() // Timer t2(50, millis, []()
// { digitalToggle(LED_BUILTIN); }); // { digitalToggle(LED_BUILTIN); });
@ -190,8 +207,6 @@ HardwareTimer IR_Timer(TIM3);
void setup() void setup()
{ {
// MicrosTimer.setOve
IR_Timer.setOverflow(carrierFrec * 2, HERTZ_FORMAT); IR_Timer.setOverflow(carrierFrec * 2, HERTZ_FORMAT);
IR_Timer.attachInterrupt(1, EncoderISR); IR_Timer.attachInterrupt(1, EncoderISR);
NVIC_SetPriority(IRQn_Type::TIM3_IRQn, 0); NVIC_SetPriority(IRQn_Type::TIM3_IRQn, 0);
@ -201,79 +216,59 @@ void setup()
Serial.println(F(INFO)); Serial.println(F(INFO));
pinMode(LoopOut, OUTPUT); pinMode(LoopOut, OUTPUT);
// pinMode(SignalDetectLed, OUTPUT);
pinMode(dec0_PIN, INPUT_PULLUP); pinMode(dec0_PIN, INPUT_PULLUP);
// pinMode(dec2_PIN, INPUT_PULLUP); pinMode(dec1_PIN, INPUT_PULLUP);
pinMode(dec2_PIN, INPUT_PULLUP);
pinMode(dec3_PIN, INPUT_PULLUP);
pinMode(dec4_PIN, INPUT_PULLUP);
pinMode(dec5_PIN, INPUT_PULLUP);
pinMode(dec6_PIN, INPUT_PULLUP);
pinMode(dec7_PIN, INPUT_PULLUP);
// pinMode(dec8_PIN, INPUT_PULLUP);
// pinMode(dec9_PIN, INPUT_PULLUP);
// pinMode(dec10_PIN, INPUT_PULLUP);
// pinMode(dec11_PIN, INPUT_PULLUP);
// pinMode(dec12_PIN, INPUT_PULLUP);
// pinMode(dec13_PIN, INPUT_PULLUP);
static IR_DecoderRaw *blind[]{ attachInterrupt(dec0_PIN, dec_0_ISR, CHANGE);
&dec0, attachInterrupt(dec1_PIN, dec_1_ISR, CHANGE);
&dec1, attachInterrupt(dec2_PIN, dec_2_ISR, CHANGE);
&dec2, attachInterrupt(dec3_PIN, dec_3_ISR, CHANGE);
&dec3, attachInterrupt(dec4_PIN, dec_4_ISR, CHANGE);
&dec4, attachInterrupt(dec5_PIN, dec_5_ISR, CHANGE);
&dec5, attachInterrupt(dec6_PIN, dec_6_ISR, CHANGE);
&dec6, attachInterrupt(dec7_PIN, dec_7_ISR, CHANGE);
&dec7, // attachInterrupt(dec8_PIN, dec_8_ISR, CHANGE);
// &dec8, // attachInterrupt(dec9_PIN, dec_9_ISR, CHANGE);
// &dec9, // attachInterrupt(dec10_PIN, dec_10_ISR, CHANGE);
// &dec10, // attachInterrupt(dec11_PIN, dec_11_ISR, CHANGE);
// &dec11, // attachInterrupt(dec12_PIN, dec_12_ISR, CHANGE);
// &dec12, // attachInterrupt(dec13_PIN, dec_13_ISR, CHANGE);
// &dec13,
};
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(11);
// decSetup(12);
// decSetup(13);
} }
void loop() void loop()
{ {
digitalToggle(LoopOut); digitalToggle(LoopOut);
Timer::tick(); Timer::tick();
IR_Decoder::tick(); IR_Decoder::tick();
bool rx_flag; bool rx_flag = false;
decStat(0); rx_flag |= status(dec0);
decStat(1); rx_flag |= status(dec1);
decStat(2); rx_flag |= status(dec2);
decStat(3); rx_flag |= status(dec3);
decStat(4); rx_flag |= status(dec4);
decStat(5); rx_flag |= status(dec5);
decStat(6); rx_flag |= status(dec6);
decStat(7); rx_flag |= status(dec7);
// decStat(8); // rx_flag |= status(dec8);
// decStat(9); // rx_flag |= status(dec9);
// decStat(10); // rx_flag |= status(dec10);
// decStat(11); // rx_flag |= status(dec11);
// decStat(12); // rx_flag |= status(dec12);
// decStat(13); // rx_flag |= status(dec13);
// status(decForward);
// status(decBackward);
// Serial.println(micros() - loopTimer);
// loopTimer = micros();
// delayMicroseconds(120*5);
if (Serial.available()) if (Serial.available())
{ {
@ -289,13 +284,14 @@ void loop()
case 102: case 102:
targetAddr = 777; targetAddr = 777;
break; break;
default: default:
sig = in; sig = in;
break; break;
} }
} }
} }
Timer statusSimpleDelay; Timer statusSimpleDelay;
bool statusSimple(IR_Decoder &dec) bool statusSimple(IR_Decoder &dec)
{ {
@ -326,7 +322,7 @@ bool status(IR_Decoder &dec)
if (dec.gotData.available()) if (dec.gotData.available())
{ {
detectSignal(); detectSignal();
Serial.println(micros()); // Serial.println(micros());
String str; String str;
if (/* dec.gotData.getDataPrt()[1] */ 1) if (/* dec.gotData.getDataPrt()[1] */ 1)
{ {