diff --git a/src/drivers/light_led.h b/src/drivers/light_led.h index b031a5412a..230ce944ab 100644 --- a/src/drivers/light_led.h +++ b/src/drivers/light_led.h @@ -3,9 +3,14 @@ // Helpful macros #ifdef LED0 #define LED0_TOGGLE digitalToggle(LED0_GPIO, LED0_PIN); +#ifndef LED0_INVERTED #define LED0_OFF digitalHi(LED0_GPIO, LED0_PIN); #define LED0_ON digitalLo(LED0_GPIO, LED0_PIN); #else +#define LED0_OFF digitalLo(LED0_GPIO, LED0_PIN); +#define LED0_ON digitalHi(LED0_GPIO, LED0_PIN); +#endif // inverted +#else #define LED0_TOGGLE #define LED0_OFF #define LED0_ON @@ -13,9 +18,14 @@ #ifdef LED1 #define LED1_TOGGLE digitalToggle(LED1_GPIO, LED1_PIN); +#ifndef LED1_INVERTED #define LED1_OFF digitalHi(LED1_GPIO, LED1_PIN); #define LED1_ON digitalLo(LED1_GPIO, LED1_PIN); #else +#define LED1_OFF digitalLo(LED1_GPIO, LED1_PIN); +#define LED1_ON digitalHi(LED1_GPIO, LED1_PIN); +#endif // inverted +#else #define LED1_TOGGLE #define LED1_OFF #define LED1_ON diff --git a/src/drivers/sound_beeper.c b/src/drivers/sound_beeper.c index 2a82130176..d586afaa55 100644 --- a/src/drivers/sound_beeper.c +++ b/src/drivers/sound_beeper.c @@ -15,7 +15,7 @@ void (* systemBeepPtr)(bool onoff) = NULL; -static void beepRev4(bool onoff) +static void beepNormal(bool onoff) { if (onoff) { digitalLo(BEEP_GPIO, BEEP_PIN); @@ -24,7 +24,7 @@ static void beepRev4(bool onoff) } } -static void beepRev5(bool onoff) +static void beepInverted(bool onoff) { if (onoff) { digitalHi(BEEP_GPIO, BEEP_PIN); @@ -41,15 +41,24 @@ void systemBeep(bool onoff) #endif } +static inline bool isBuzzerOutputInverted(void) +{ +#ifdef BUZZER_INVERTED + return true; +#else + // Naze rev5 needs inverted beeper. + return hse_value == 12000000; +#endif +} + void beeperInit(void) { #ifdef BUZZER // Configure gpio - // rev5 needs inverted beeper. oops. - if (hse_value == 12000000) - systemBeepPtr = beepRev5; + if (isBuzzerOutputInverted()) + systemBeepPtr = beepInverted; else - systemBeepPtr = beepRev4; + systemBeepPtr = beepNormal; BEEP_OFF; #endif } diff --git a/src/drivers/system_common.c b/src/drivers/system_common.c index 72ed64f523..ef2399a0a2 100755 --- a/src/drivers/system_common.c +++ b/src/drivers/system_common.c @@ -126,6 +126,7 @@ void systemInit(bool overclock) RCC_AHBPeriph_GPIOB | RCC_AHBPeriph_GPIOC | RCC_AHBPeriph_GPIOD | + RCC_AHBPeriph_GPIOE | /*RCC_AHBPeriph_GPIOF | */ RCC_AHBPeriph_ADC12, ENABLE diff --git a/src/platform.h b/src/platform.h index 5e3762ab8d..c6a76ca5f4 100644 --- a/src/platform.h +++ b/src/platform.h @@ -13,12 +13,15 @@ #define U_ID_1 (*(uint32_t*)0x10000000) #define U_ID_2 (*(uint32_t*)0x10000003) -#define LED0_GPIO GPIOB -#define LED0_PIN Pin_3 // PB3 (LED) -#define LED1_GPIO GPIOB -#define LED1_PIN Pin_4 // PB4 (LED) -#define BEEP_GPIO GPIOA -#define BEEP_PIN Pin_12 // PA12 (Buzzer) +#define LED0_GPIO GPIOE +#define LED0_PIN Pin_8|Pin_12 // Blue LEDs - PE8/PE12 +#define LED0_INVERTED +#define LED1_GPIO GPIOE +#define LED1_PIN Pin_10|Pin_14 // Orange LEDs - PE10/PE14 +#define LED1_INVERTED +#define BEEP_GPIO GPIOE +#define BEEP_PIN Pin_9|Pin_13 // Red LEDs - PE9/PE13 +#define BUZZER_INVERTED #define BARO_GPIO GPIOC #define BARO_PIN Pin_13