From 59d6e7aa2332c2da636ce21effad501190eb1c3c Mon Sep 17 00:00:00 2001 From: DashyFox Date: Mon, 22 Apr 2024 14:55:16 +0300 Subject: [PATCH] test --- IR-protocol.ino | 122 +++++++++++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 59 deletions(-) diff --git a/IR-protocol.ino b/IR-protocol.ino index 2a1f9a7..fd32bad 100644 --- a/IR-protocol.ino +++ b/IR-protocol.ino @@ -4,20 +4,28 @@ #include "MemoryCheck.h" /////////////// Pinout /////////////// -#define encForward_PIN PB5 -#define encBackward_PIN PB4 +#define encForward_PIN PA0 +#define encBackward_PIN PA1 -#define dec1_PIN PA8 -#define dec2_PIN PB8 +#define dec0_PIN PB0 +#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 PB12 +#define LoopOut PC13 -#define ISR_1_Out PB6 -#define ISR_2_Out PB7 - -// #define TestOut 13 - -#define SignalDetectLed PB15 //////////////// Ini ///////////////// @@ -26,8 +34,8 @@ //////////////// Var ///////////////// -IR_Decoder decForward(dec1_PIN, 555); -IR_Decoder decBackward(dec2_PIN, 777); +IR_Decoder dec0(dec1_PIN, 0); +IR_Decoder dec1(dec2_PIN, 1); IR_Encoder encForward(42 /* , &decBackward */); // IR_Encoder encBackward(321, encBackward_PIN); @@ -35,34 +43,23 @@ IR_Encoder encForward(42 /* , &decBackward */); //////////////////////// Функции прерываний //////////////////////// -void decForwardISR() -{ - decForward.isr(); - // Serial.println("ISR"); -} - -void decBackwardISR() -{ - decBackward.isr(); - // Serial.println("ISR"); -} - -static uint8_t *portOut; - void EncoderISR() { encForward.isr(); // encBackward.isr(); // encTree.isr(); - // TODO: Сделать выбор порта - // *portOut = (*portOut & 0b11001111) | - // ( - // encForward.ir_out_virtual << 5U - // // | encBackward.ir_out_virtual << 6U - // // | encTree.ir_out_virtual << 2U - // ); + digitalWrite(PB5, encForward.ir_out_virtual); } + +//------------------------------------------------------------------ +#define dec_ISR(n) \ +void dec_##n##_ISR() { dec##n.isr(); } + +dec_ISR(0); +dec_ISR(1); + + ///////////////////////////////////////////////////////////////////// uint8_t data0[] = {}; uint8_t data1[] = {42}; @@ -170,34 +167,30 @@ void MicrosTimerISR(){ void setup() { - // MicrosTimer.setOve + Serial.begin(SERIAL_SPEED); + Serial.println(F(INFO)); IR_Timer.setOverflow(carrierFrec*2, HERTZ_FORMAT); IR_Timer.attachInterrupt(1, EncoderISR); - - Serial.begin(SERIAL_SPEED); - Serial.println(F(INFO)); - - pinMode(ISR_1_Out,OUTPUT); - pinMode(ISR_2_Out,OUTPUT); - pinMode(LoopOut, OUTPUT); - pinMode(SignalDetectLed, OUTPUT); - // pinMode(dec1_PIN, INPUT_PULLUP); - // pinMode(dec2_PIN, INPUT_PULLUP); + // IR_DecoderRaw* blindFromForward [] { &decForward, &decBackward }; + // encForward.setBlindDecoders(blindFromForward, sizeof(blindFromForward) / sizeof(IR_DecoderRaw*)); pinMode(encForward_PIN, OUTPUT); pinMode(encBackward_PIN, OUTPUT); pinMode(LED_BUILTIN, OUTPUT); - // IR_DecoderRaw* blindFromForward [] { &decForward, &decBackward }; - // encForward.setBlindDecoders(blindFromForward, sizeof(blindFromForward) / sizeof(IR_DecoderRaw*)); +#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); + +decSetup(0); - attachInterrupt(dec1_PIN, decForwardISR, CHANGE); // D2 - // attachInterrupt(dec2_PIN, decBackwardISR, CHANGE); // D3 } void loop() @@ -205,15 +198,18 @@ void loop() digitalToggle(LoopOut); Timer::tick(); - decForward.tick(); - decBackward.tick(); - status(decForward); - // status(decBackward); - // Serial.println(micros() - loopTimer); - // loopTimer = micros(); - // delayMicroseconds(120*5); + decTick(0); + decTick(1); + +bool rx_flag; + decStat(0); + decStat(1); + + if(rx_flag){ + Serial.print("\n\n\n\n"); + } if (Serial.available()) { @@ -239,12 +235,20 @@ void loop() void detectSignal() { - digitalWrite(SignalDetectLed, HIGH); - signalDetectTimer.delay(50, millis, []() - { digitalWrite(SignalDetectLed, LOW); }); + // digitalWrite(SignalDetectLed, HIGH); + // signalDetectTimer.delay(50, millis, []() + // { digitalWrite(SignalDetectLed, LOW); }); } // test + +bool statusSimple(IR_Decoder &dec){ + if (dec.gotData.available()) + { + Serial.print("DEC "); Serial.println(dec.id); + } +} + void status(IR_Decoder &dec) { if (dec.gotData.available())