Raw, test and tune

This commit is contained in:
DashyFox 2023-10-16 11:11:23 +03:00
parent e812f97f37
commit 352835b6f5
3 changed files with 26 additions and 7 deletions

View File

@ -199,8 +199,10 @@ void IR_Decoder::isr() { // в прерывании вызываем isr()
}
} else { /* riseSyncTime = bitTime; */ } // сброс тюнера
frontCounter--;
//Serial.println(frontCounter);
} else {
if (isPreamb) {// первый фронт после
gotTune._set(riseSyncTime);
}
isPreamb = false;
}
@ -241,7 +243,7 @@ void IR_Decoder::isr() { // в прерывании вызываем isr()
lowCount = ceil_div(lowTime, riseTime); // предполагаемое колличество LOW битов
allCount = ceil_div(risePeriod, riseTime); // предполагаемое колличество всего битов
if (highCount == 0 && highTime > riseTime / 4) { // fix короткой единицы (?)после пропуска нулей(?)
if (highCount == 0 && highTime > riseTime / 3) { // fix короткой единицы (?)после пропуска нулей(?)
highCount++;
errorCounter++;
#ifdef IRDEBUG

View File

@ -131,10 +131,27 @@ public:
}
};
class RawTune {
friend IR_Decoder;
private:
bool _isAvaliable = false;
uint16_t _tune;
public:
bool avaliable() { return _isAvaliable; };
uint16_t getTune() { return _tune; };
void resetAvaliable() { _isAvaliable = false; };
private:
void _set(uint16_t val) {
_tune = val;
_isAvaliable = true;
}
};
Data gotData;
RawData gotRawData;
Accept gotAccept;
Request gotRequest;
RawTune gotTune;
private:

View File

@ -63,7 +63,8 @@ msg type:
#define bytePerPack 3 // колличество байтов в пакете
#define freeFrec true
#define carrierTune 8
#define carrierTune 4
#define preambPulse 3
// 8 для gyverCore
// 4~5 для arduino nano
@ -86,7 +87,6 @@ typedef uint16_t crc_t;
#define bufferBitSizeMax (dataBitSize) // Размер буффера в битах
//const auto x = bufferBitSizeMax;
#define preambPulse 3U
#define preambFronts (preambPulse*2) // количество фронтов преамбулы
#define carrierFrec 38000U // частота несущей
@ -97,8 +97,8 @@ typedef uint16_t crc_t;
const auto _x_ = halfPeriod;
// В процессе работы значения будут отклонятся в соответствии с предыдущим битом
#define bitActiveTakts 30U // длительность активной части бита в тактах
#define bitPauseTakts 7U // длительность промежутков в тактах
#define bitActiveTakts 25U // длительность единицы в тактах
#define bitPauseTakts 6U // длительность нуля в тактах
#define bitTakts (bitActiveTakts+bitPauseTakts*2U) // Общая длительность бита в тактах
#define bitTime (bitTakts*carrierPeriod) // Общая длительность бита