mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2025-05-04 15:20:16 +00:00
Raw, test and tune
This commit is contained in:
parent
e812f97f37
commit
352835b6f5
@ -199,10 +199,12 @@ void IR_Decoder::isr() { // в прерывании вызываем isr()
|
|||||||
}
|
}
|
||||||
} else { /* riseSyncTime = bitTime; */ } // сброс тюнера
|
} else { /* riseSyncTime = bitTime; */ } // сброс тюнера
|
||||||
frontCounter--;
|
frontCounter--;
|
||||||
|
//Serial.println(frontCounter);
|
||||||
} else {
|
} else {
|
||||||
if (isPreamb) {// первый фронт после
|
if (isPreamb) {// первый фронт после
|
||||||
|
gotTune._set(riseSyncTime);
|
||||||
}
|
}
|
||||||
isPreamb = false;
|
isPreamb = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// определить направление фронта
|
// определить направление фронта
|
||||||
@ -241,7 +243,7 @@ void IR_Decoder::isr() { // в прерывании вызываем isr()
|
|||||||
lowCount = ceil_div(lowTime, riseTime); // предполагаемое колличество LOW битов
|
lowCount = ceil_div(lowTime, riseTime); // предполагаемое колличество LOW битов
|
||||||
allCount = ceil_div(risePeriod, riseTime); // предполагаемое колличество всего битов
|
allCount = ceil_div(risePeriod, riseTime); // предполагаемое колличество всего битов
|
||||||
|
|
||||||
if (highCount == 0 && highTime > riseTime / 4) { // fix короткой единицы (?)после пропуска нулей(?)
|
if (highCount == 0 && highTime > riseTime / 3) { // fix короткой единицы (?)после пропуска нулей(?)
|
||||||
highCount++;
|
highCount++;
|
||||||
errorCounter++;
|
errorCounter++;
|
||||||
#ifdef IRDEBUG
|
#ifdef IRDEBUG
|
||||||
|
19
IR_Decoder.h
19
IR_Decoder.h
@ -39,7 +39,7 @@ public:
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
class InputData : protected IR_FOX {
|
class InputData : protected IR_FOX {
|
||||||
friend IR_Decoder;
|
friend IR_Decoder;
|
||||||
protected:
|
protected:
|
||||||
bool _isAvaliable = false;
|
bool _isAvaliable = false;
|
||||||
@ -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;
|
Data gotData;
|
||||||
RawData gotRawData;
|
RawData gotRawData;
|
||||||
Accept gotAccept;
|
Accept gotAccept;
|
||||||
Request gotRequest;
|
Request gotRequest;
|
||||||
|
RawTune gotTune;
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -63,7 +63,8 @@ msg type:
|
|||||||
#define bytePerPack 3 // колличество байтов в пакете
|
#define bytePerPack 3 // колличество байтов в пакете
|
||||||
#define freeFrec true
|
#define freeFrec true
|
||||||
|
|
||||||
#define carrierTune 8
|
#define carrierTune 4
|
||||||
|
#define preambPulse 3
|
||||||
// 8 для gyverCore
|
// 8 для gyverCore
|
||||||
// 4~5 для arduino nano
|
// 4~5 для arduino nano
|
||||||
|
|
||||||
@ -86,7 +87,6 @@ typedef uint16_t crc_t;
|
|||||||
#define bufferBitSizeMax (dataBitSize) // Размер буффера в битах
|
#define bufferBitSizeMax (dataBitSize) // Размер буффера в битах
|
||||||
|
|
||||||
//const auto x = bufferBitSizeMax;
|
//const auto x = bufferBitSizeMax;
|
||||||
#define preambPulse 3U
|
|
||||||
#define preambFronts (preambPulse*2) // количество фронтов преамбулы
|
#define preambFronts (preambPulse*2) // количество фронтов преамбулы
|
||||||
|
|
||||||
#define carrierFrec 38000U // частота несущей
|
#define carrierFrec 38000U // частота несущей
|
||||||
@ -97,8 +97,8 @@ typedef uint16_t crc_t;
|
|||||||
const auto _x_ = halfPeriod;
|
const auto _x_ = halfPeriod;
|
||||||
|
|
||||||
// В процессе работы значения будут отклонятся в соответствии с предыдущим битом
|
// В процессе работы значения будут отклонятся в соответствии с предыдущим битом
|
||||||
#define bitActiveTakts 30U // длительность активной части бита в тактах
|
#define bitActiveTakts 25U // длительность единицы в тактах
|
||||||
#define bitPauseTakts 7U // длительность промежутков в тактах
|
#define bitPauseTakts 6U // длительность нуля в тактах
|
||||||
|
|
||||||
#define bitTakts (bitActiveTakts+bitPauseTakts*2U) // Общая длительность бита в тактах
|
#define bitTakts (bitActiveTakts+bitPauseTakts*2U) // Общая длительность бита в тактах
|
||||||
#define bitTime (bitTakts*carrierPeriod) // Общая длительность бита
|
#define bitTime (bitTakts*carrierPeriod) // Общая длительность бита
|
||||||
|
Loading…
x
Reference in New Issue
Block a user