| 1234567891011121314151617181920 |
- #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;
- }
|