* iButton, FuriHal: add onewire HAL, migrate to LL, add missing critical section guards * FuriHal: rename onewire to ibutton, cleanup RCC domain usage, fix ibutton and rfid * FuriHal: cleanup RCC usage
		
			
				
	
	
		
			27 lines
		
	
	
		
			542 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			542 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
#include <stdint.h>
 | 
						|
 | 
						|
class PulseSequencer {
 | 
						|
public:
 | 
						|
    void set_periods(uint32_t* periods, uint16_t periods_count, bool pin_start_state);
 | 
						|
    void start();
 | 
						|
    void stop();
 | 
						|
 | 
						|
    ~PulseSequencer();
 | 
						|
 | 
						|
private:
 | 
						|
    uint16_t period_index;
 | 
						|
    uint16_t periods_count;
 | 
						|
    uint32_t* periods;
 | 
						|
    bool pin_start_state;
 | 
						|
    bool pin_state;
 | 
						|
 | 
						|
    void init_timer(uint32_t period);
 | 
						|
 | 
						|
    void reset_period_index(PulseSequencer* _this);
 | 
						|
 | 
						|
    void (*callback_pointer)(void*, void*);
 | 
						|
 | 
						|
    static void timer_elapsed_callback(void* comp_ctx);
 | 
						|
};
 |