X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstm32f1%2Fao_beep_stm.c;h=3cabcfe89960d53edfb06c24cc95f531a6e790a9;hb=c8a0811abf59fb55cb17d2159289621d26e887ad;hp=73bdb8cf0413a9ebf0f5ed56338ec7989340f50c;hpb=1b8bc4e4aadd367c40d33afefb526f1c60c7d118;p=fw%2Faltos diff --git a/src/stm32f1/ao_beep_stm.c b/src/stm32f1/ao_beep_stm.c index 73bdb8cf..3cabcfe8 100644 --- a/src/stm32f1/ao_beep_stm.c +++ b/src/stm32f1/ao_beep_stm.c @@ -22,15 +22,12 @@ #if BEEPER_TIMER == 2 #define stm_beeper stm_tim2 #define RCC_BEEPER STM_RCC_APB1ENR_TIM2EN -#define BEEPER_AFR STM_AFR_AF1 #elif BEEPER_TIMER == 3 #define stm_beeper stm_tim3 #define RCC_BEEPER STM_RCC_APB1ENR_TIM3EN -#define BEEPER_AFR STM_AFR_AF2 #elif BEEPER_TIMER == 4 #define stm_beeper stm_tim4 #define RCC_BEEPER STM_RCC_APB1ENR_TIM4EN -#define BEEPER_AFR STM_AFR_AF2 #else #error BEEPER_TIMER must be 2, 3 or 4 #endif @@ -176,7 +173,47 @@ ao_beep_init(void) } } #elif BEEPER_TIMER == 3 - ao_panic(AO_PANIC_CRASH); + if (BEEPER_PORT == &stm_gpioa) { + switch (BEEPER_PIN) { + case 6: + case 7: + stm_set_afio_mapr(STM_AFIO_MAPR_TIM3_REMAP, + STM_AFIO_MAPR_TIM3_REMAP_PA6_PA7_PB0_PB1, + STM_AFIO_MAPR_TIM3_REMAP_MASK); + break; + default: + ao_panic(AO_PANIC_CRASH); + break; + } + } else if (BEEPER_PORT == &stm_gpiob) { + switch (BEEPER_PIN) { + case 4: + case 5: + case 0: + case 1: + stm_set_afio_mapr(STM_AFIO_MAPR_TIM3_REMAP, + STM_AFIO_MAPR_TIM3_REMAP_PB4_PB5_PB0_PB1, + STM_AFIO_MAPR_TIM3_REMAP_MASK); + break; + default: + ao_panic(AO_PANIC_CRASH); + break; + } + } else if (BEEPER_PORT == &stm_gpioc) { + switch (BEEPER_PIN) { + case 6: + case 7: + case 8: + case 9: + stm_set_afio_mapr(STM_AFIO_MAPR_TIM3_REMAP, + STM_AFIO_MAPR_TIM3_REMAP_PC6_PC7_PC8_PC9, + STM_AFIO_MAPR_TIM3_REMAP_MASK); + break; + default: + ao_panic(AO_PANIC_CRASH); + break; + } + } #elif BEEPER_TIMER == 4 ao_panic(AO_PANIC_CRASH); #endif