 1fdc5f2950
			
		
	
	
		1fdc5f2950
		
			
		
	
	
	
	
		
			
			* 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);
 | |
| };
 |