mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2024-12-20 20:01:54 +03:00
21 lines
476 B
C++
21 lines
476 B
C++
|
#include "osc-fsk.h"
|
||
|
|
||
|
OscFSK::OscFSK(uint16_t _freq_low, uint16_t _freq_hi, uint16_t _osc_phase_max)
|
||
|
: freq{_freq_low, _freq_hi}
|
||
|
, osc_phase_max(_osc_phase_max) {
|
||
|
osc_phase_current = 0;
|
||
|
}
|
||
|
|
||
|
bool OscFSK::next(bool bit, uint16_t* period) {
|
||
|
bool advance = false;
|
||
|
*period = freq[bit];
|
||
|
osc_phase_current += *period;
|
||
|
|
||
|
if(osc_phase_current > osc_phase_max) {
|
||
|
advance = true;
|
||
|
osc_phase_current -= osc_phase_max;
|
||
|
}
|
||
|
|
||
|
return advance;
|
||
|
}
|