 5d08b35b54
			
		
	
	
		5d08b35b54
		
			
		
	
	
	
	
		
			
			* Interrupt manager: add memory barriers. * ISRs: remove TIM17 dead code. * API HAL Delay: rename initialization routine and move to API-HAL * Main: move FURI initialization to the start. * API HAL GPIO: drop CC1101 shenanigans, COMP inversion for new boards. * IButton: migrate Cyfral and Metakom to RFID comp routine, make it compatible with new boards. * RFID: Better keyboard handling and shutdown routines
		
			
				
	
	
		
			37 lines
		
	
	
		
			845 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			845 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <api-hal-gpio.h>
 | |
| #include <api-hal-version.h>
 | |
| 
 | |
| // init GPIO
 | |
| void hal_gpio_init(
 | |
|     const GpioPin* gpio,
 | |
|     const GpioMode mode,
 | |
|     const GpioPull pull,
 | |
|     const GpioSpeed speed) {
 | |
|     // TODO: Alternate Functions
 | |
|     GPIO_InitTypeDef GPIO_InitStruct = {0};
 | |
| 
 | |
|     GPIO_InitStruct.Pin = gpio->pin;
 | |
|     GPIO_InitStruct.Mode = mode;
 | |
|     GPIO_InitStruct.Pull = pull;
 | |
|     GPIO_InitStruct.Speed = speed;
 | |
| 
 | |
|     HAL_GPIO_Init(gpio->port, &GPIO_InitStruct);
 | |
| }
 | |
| 
 | |
| extern COMP_HandleTypeDef hcomp1;
 | |
| 
 | |
| bool get_rfid_in_level() {
 | |
|     bool value = false;
 | |
|     if (api_hal_version_get_hw_version() > 7) {
 | |
|         value = (HAL_COMP_GetOutputLevel(&hcomp1) == COMP_OUTPUT_LEVEL_LOW);
 | |
|     } else {
 | |
|         value = (HAL_COMP_GetOutputLevel(&hcomp1) == COMP_OUTPUT_LEVEL_HIGH);
 | |
|     }
 | |
| 
 | |
| #ifdef INVERT_RFID_IN
 | |
|     return !value;
 | |
| #else
 | |
|     return value;
 | |
| #endif
 | |
| }
 |