mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2025-05-04 07:10:16 +00:00
Raw, test and tune
This commit is contained in:
parent
e812f97f37
commit
352835b6f5
@ -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
|
||||
|
17
IR_Decoder.h
17
IR_Decoder.h
@ -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:
|
||||
|
@ -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) // Общая длительность бита
|
||||
|
Loading…
x
Reference in New Issue
Block a user