fix(mic): исправлен таймер на TIM3
This commit is contained in:
@@ -4,31 +4,18 @@
|
||||
#include <stdint.h>
|
||||
|
||||
// Audio Configuration
|
||||
#define AUDIO_SAMPLE_RATE 22050U // Hz (22.05 kHz)
|
||||
#define AUDIO_BUFFER_SIZE 512U // Samples per buffer (для FFT)
|
||||
#define AUDIO_NUM_BUFFERS 2U
|
||||
#define AUDIO_SAMPLE_RATE 22050U
|
||||
#define AUDIO_BUFFER_SIZE 512U
|
||||
|
||||
// ADC Configuration
|
||||
#define AUDIO_ADC_CHANNEL 1U // PA1 = ADC1_IN1
|
||||
#define AUDIO_ADC_GPIO_PORT GPIOA
|
||||
#define AUDIO_ADC_GPIO_PIN 1U // PA1
|
||||
|
||||
// Timer Configuration
|
||||
// Timer2 будет триггерить ADC на частоте AUDIO_SAMPLE_RATE
|
||||
// APB1 Timer clock = 72 MHz (на STM32F103 при SYSCLK=72MHz)
|
||||
// Формула: Timer_Freq = Timer_Clock / ((PSC + 1) * (ARR + 1))
|
||||
// Для 22050 Hz: 72000000 / 22050 = 3265.3
|
||||
// Используем PSC=0, ARR=3264 → 72MHz / 3265 = 22051 Hz (погрешность 0.004%)
|
||||
// Timer Configuration (TIM2 для 72 MHz)
|
||||
#define AUDIO_TIMER_PRESCALER 0U
|
||||
#define AUDIO_TIMER_PERIOD 3264U // ARR value
|
||||
|
||||
// DMA Configuration
|
||||
#define AUDIO_DMA_CHANNEL DMA1_Channel1 // ADC1 использует DMA1_CH1
|
||||
#define AUDIO_TIMER_PERIOD 3264U // 72MHz / 3265 ≈ 22050 Hz
|
||||
|
||||
// Data Types
|
||||
typedef uint16_t audio_sample_t;
|
||||
|
||||
// Callback вызывается когда буфер заполнен
|
||||
typedef void (
|
||||
*audio_buffer_ready_callback_t)(audio_sample_t* buffer, uint32_t size);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user