tune as parameter

This commit is contained in:
DashyFox 2023-10-16 12:19:58 +03:00
parent 352835b6f5
commit 63e8328755
3 changed files with 14 additions and 8 deletions

View File

@ -1,7 +1,14 @@
#include "IR_Encoder.h" #include "IR_Encoder.h"
#include "IR_Decoder.h" #include "IR_Decoder.h"
IR_Encoder::IR_Encoder(uint16_t addr, uint8_t pin, IR_Decoder* decPair) : ir_out(pin), addrSelf(addr), decoder(decPair) {}; IR_Encoder::IR_Encoder(uint16_t addr, uint8_t pin, uint8_t tune = 0, IR_Decoder* decPair) {
ir_out = pin;
addrSelf = addr;
decoder = decPair;
carrierTune = tune;
halfPeriod = (carrierPeriod / 2) - carrierTune;
};
IR_Encoder::~IR_Encoder() {}; IR_Encoder::~IR_Encoder() {};
void IR_Encoder::sendACK(uint16_t addrTo, uint8_t addInfo, bool forAll = false) { void IR_Encoder::sendACK(uint16_t addrTo, uint8_t addInfo, bool forAll = false) {

View File

@ -9,9 +9,10 @@ public:
uint16_t addrSelf; uint16_t addrSelf;
private: private:
bool prevPreambBit = true; // предыдущий бит преамбулы bool prevPreambBit = true; // предыдущий бит преамбулы
uint8_t carrierTune;
uint8_t halfPeriod;
public: public:
IR_Encoder(uint16_t addr, uint8_t pin, IR_Decoder* decPair = nullptr); IR_Encoder(uint16_t addr, uint8_t pin, uint8_t tune, IR_Decoder* decPair = nullptr);
template<typename T> template<typename T>
void sendData(uint16_t addrTo, T& data, bool needAccept = false); void sendData(uint16_t addrTo, T& data, bool needAccept = false);

View File

@ -2,6 +2,8 @@
#include <Arduino.h> #include <Arduino.h>
/*////////////////////////////////////////////////////////////////////////////////////// /*//////////////////////////////////////////////////////////////////////////////////////
Для работы в паре положить декодер в энкодер
*/// Адресация с 1 до 65 499 */// Адресация с 1 до 65 499
#define IR_Broadcast 6500 // 65 500 ~ 65 535 - широковещательные пакеты (всем), возможно разделить на 35 типов #define IR_Broadcast 6500 // 65 500 ~ 65 535 - широковещательные пакеты (всем), возможно разделить на 35 типов
/* /*
@ -63,7 +65,7 @@ msg type:
#define bytePerPack 3 // колличество байтов в пакете #define bytePerPack 3 // колличество байтов в пакете
#define freeFrec true #define freeFrec true
#define carrierTune 4 //#define carrierTune 4
#define preambPulse 3 #define preambPulse 3
// 8 для gyverCore // 8 для gyverCore
// 4~5 для arduino nano // 4~5 для arduino nano
@ -92,10 +94,6 @@ typedef uint16_t crc_t;
#define carrierFrec 38000U // частота несущей #define carrierFrec 38000U // частота несущей
#define carrierPeriod (1000000U/carrierFrec) // период несущей в us #define carrierPeriod (1000000U/carrierFrec) // период несущей в us
#define halfPeriod ((carrierPeriod / 2) - carrierTune) //13 //8 // 14 при работе с регистрами, 14 -6 = 8 для digitalWrite()
const auto _x_ = halfPeriod;
// В процессе работы значения будут отклонятся в соответствии с предыдущим битом // В процессе работы значения будут отклонятся в соответствии с предыдущим битом
#define bitActiveTakts 25U // длительность единицы в тактах #define bitActiveTakts 25U // длительность единицы в тактах
#define bitPauseTakts 6U // длительность нуля в тактах #define bitPauseTakts 6U // длительность нуля в тактах