* Rfid: fixed HID emulation by adding zero pulse every 4 bits * Rfid: HID emulation fixed with DSP based FSK oscillator.
		
			
				
	
	
		
			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;
 | 
						|
}
 |