From d1cb167aaff9cba607ab646e92ddd2df7ff16747 Mon Sep 17 00:00:00 2001 From: DashyFox Date: Thu, 23 Jan 2025 09:41:10 +0300 Subject: [PATCH] no define --- .vscode/arduino.json | 4 +- IR-protocol.ino | 180 +++++++++++++++++++++---------------------- 2 files changed, 91 insertions(+), 93 deletions(-) diff --git a/.vscode/arduino.json b/.vscode/arduino.json index 3d8ebd7..b71ec64 100644 --- a/.vscode/arduino.json +++ b/.vscode/arduino.json @@ -1,5 +1,7 @@ { "board": "STMicroelectronics:stm32:GenF4", "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" } \ No newline at end of file diff --git a/IR-protocol.ino b/IR-protocol.ino index 56005d9..631cf55 100644 --- a/IR-protocol.ino +++ b/IR-protocol.ino @@ -23,18 +23,6 @@ #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 ///////////////// #define INFO "IR_FOX TEST" @@ -63,20 +51,47 @@ void EncoderISR() //------------------------------------------------------------------- -dec_Ini(0); -dec_Ini(1); -dec_Ini(2); -dec_Ini(3); -dec_Ini(4); -dec_Ini(5); -dec_Ini(6); -dec_Ini(7); -// dec_Ini(8); -// dec_Ini(9); -// dec_Ini(10); -// dec_Ini(11); -// dec_Ini(12); -// dec_Ini(13); +IR_Decoder dec0(dec0_PIN, 0); +void dec_0_ISR() { dec0.isr(); } + +IR_Decoder dec1(dec1_PIN, 1); +void dec_1_ISR() { dec1.isr(); } + +IR_Decoder dec2(dec2_PIN, 2); +void dec_2_ISR() { dec2.isr(); } + +IR_Decoder dec3(dec3_PIN, 3); +void dec_3_ISR() { dec3.isr(); } + +IR_Decoder dec4(dec4_PIN, 4); +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[] = {}; @@ -88,6 +103,7 @@ uint8_t data4[] = {42, 127, 137, 255}; uint32_t loopTimer; uint8_t sig = 0; uint16_t targetAddr = IR_Broadcast; + Timer t1(500, millis, []() { // Serial.println( digitalPinToBitMask(enc0.getPin()), BIN); @@ -181,6 +197,7 @@ Timer t1(500, millis, []() // encBackward.sendData(IR_Broadcast, data2); // encTree.sendData(IR_Broadcast, rawData3); }); + // Timer t2(50, millis, []() // { digitalToggle(LED_BUILTIN); }); @@ -190,8 +207,6 @@ HardwareTimer IR_Timer(TIM3); void setup() { - // MicrosTimer.setOve - IR_Timer.setOverflow(carrierFrec * 2, HERTZ_FORMAT); IR_Timer.attachInterrupt(1, EncoderISR); NVIC_SetPriority(IRQn_Type::TIM3_IRQn, 0); @@ -201,79 +216,59 @@ void setup() Serial.println(F(INFO)); pinMode(LoopOut, OUTPUT); - // pinMode(SignalDetectLed, OUTPUT); 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[]{ - &dec0, - &dec1, - &dec2, - &dec3, - &dec4, - &dec5, - &dec6, - &dec7, - // &dec8, - // &dec9, - // &dec10, - // &dec11, - // &dec12, - // &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); + attachInterrupt(dec0_PIN, dec_0_ISR, CHANGE); + attachInterrupt(dec1_PIN, dec_1_ISR, CHANGE); + attachInterrupt(dec2_PIN, dec_2_ISR, CHANGE); + attachInterrupt(dec3_PIN, dec_3_ISR, CHANGE); + attachInterrupt(dec4_PIN, dec_4_ISR, CHANGE); + attachInterrupt(dec5_PIN, dec_5_ISR, CHANGE); + attachInterrupt(dec6_PIN, dec_6_ISR, CHANGE); + attachInterrupt(dec7_PIN, dec_7_ISR, CHANGE); + // attachInterrupt(dec8_PIN, dec_8_ISR, CHANGE); + // attachInterrupt(dec9_PIN, dec_9_ISR, CHANGE); + // attachInterrupt(dec10_PIN, dec_10_ISR, CHANGE); + // attachInterrupt(dec11_PIN, dec_11_ISR, CHANGE); + // attachInterrupt(dec12_PIN, dec_12_ISR, CHANGE); + // attachInterrupt(dec13_PIN, dec_13_ISR, CHANGE); } void loop() { digitalToggle(LoopOut); Timer::tick(); - IR_Decoder::tick(); - bool rx_flag; - decStat(0); - decStat(1); - decStat(2); - decStat(3); - decStat(4); - decStat(5); - decStat(6); - decStat(7); - // decStat(8); - // decStat(9); - // decStat(10); - // decStat(11); - // decStat(12); - // decStat(13); - - // status(decForward); - // status(decBackward); - - // Serial.println(micros() - loopTimer); - // loopTimer = micros(); - // delayMicroseconds(120*5); + bool rx_flag = false; + rx_flag |= status(dec0); + rx_flag |= status(dec1); + rx_flag |= status(dec2); + rx_flag |= status(dec3); + rx_flag |= status(dec4); + rx_flag |= status(dec5); + rx_flag |= status(dec6); + rx_flag |= status(dec7); + // rx_flag |= status(dec8); + // rx_flag |= status(dec9); + // rx_flag |= status(dec10); + // rx_flag |= status(dec11); + // rx_flag |= status(dec12); + // rx_flag |= status(dec13); if (Serial.available()) { @@ -289,13 +284,14 @@ void loop() case 102: targetAddr = 777; break; - default: sig = in; break; } } } + + Timer statusSimpleDelay; bool statusSimple(IR_Decoder &dec) { @@ -326,7 +322,7 @@ bool status(IR_Decoder &dec) if (dec.gotData.available()) { detectSignal(); - Serial.println(micros()); + // Serial.println(micros()); String str; if (/* dec.gotData.getDataPrt()[1] */ 1) {