diff --git a/Makefile b/Makefile index 496243e49..6e45b846b 100644 --- a/Makefile +++ b/Makefile @@ -509,6 +509,7 @@ SPRACINGF3_SRC = \ drivers/compass_hmc5883l.c \ drivers/display_ug2864hsweg01.h \ drivers/flash_m25p16.c \ + drivers/sonar_hcsr04.c \ io/flashfs.c \ $(HIGHEND_SRC) \ $(COMMON_SRC) diff --git a/src/main/config/config.c b/src/main/config/config.c index 50f02873b..df7a6d5ef 100644 --- a/src/main/config/config.c +++ b/src/main/config/config.c @@ -758,6 +758,12 @@ void validateAndFixConfig(void) } #endif +#if defined(SPRACINGF3) && defined(SONAR) + if (feature(FEATURE_RX_PARALLEL_PWM) && feature(FEATURE_SONAR) ) { + featureClear(FEATURE_SONAR); + } +#endif + useRxConfig(&masterConfig.rxConfig); serialConfig_t *serialConfig = &masterConfig.serialConfig; diff --git a/src/main/sensors/sonar.c b/src/main/sensors/sonar.c index b3a5438b9..4c89c819c 100644 --- a/src/main/sensors/sonar.c +++ b/src/main/sensors/sonar.c @@ -69,6 +69,15 @@ void sonarInit(void) .exti_irqn = EXTI1_IRQn }; hcsr04_init(&sonarHardware); +#elif defined(SPRACINGF3) + static const sonarHardware_t const sonarHardware = { + .trigger_pin = Pin_0, // RC_CH7 (PB0) - only 3.3v ( add a 1K Ohms resistor ) + .echo_pin = Pin_1, // RC_CH8 (PB1) - only 3.3v ( add a 1K Ohms resistor ) + .exti_line = EXTI_Line1, + .exti_pin_source = EXTI_PinSource1, + .exti_irqn = EXTI1_IRQn + }; + hcsr04_init(&sonarHardware); #else #error Sonar not defined for target #endif diff --git a/src/main/target/SPRACINGF3/target.h b/src/main/target/SPRACINGF3/target.h index 0114f9c43..258687811 100644 --- a/src/main/target/SPRACINGF3/target.h +++ b/src/main/target/SPRACINGF3/target.h @@ -48,6 +48,7 @@ #define USE_FLASHFS #define USE_FLASH_M25P16 +#define SONAR #define BEEPER #define LED0