#ifndef INIT_H #define INIT_H #include "stm32f4xx.h" #include /* Требования задания */ #define SINE_POINTS 100u #define SINE_FREQ_HZ 1000u #define DAC_UPDATE_HZ (SINE_POINTS * SINE_FREQ_HZ) /* 100 * 1k = 100 kHz */ #define DAC_MAX_12BIT 4095u #define ADC_MAX_12BIT 4095u #define VREF_VOLTS 3.0f /* Пины (выводы) */ #define DAC_OUT_PIN GPIO_Pin_4 /* PA4 = DAC Channel 1 */ #define AMP_ADC_PIN GPIO_Pin_5 /* PA5 = ADC1 Channel 5 */ /* Буфер для DMA->DAC */ extern uint16_t g_dac_buffer[SINE_POINTS]; /* Инициализация периферии */ void GPIO_Init_All(void); void DAC1_Init_All(void); void DMA1_For_DAC1_Init(uint16_t *buf, uint32_t n); void TIM2_TRGO_Init(uint32_t update_hz); void ADC1_PA5_Init(void); /* Сервис */ uint16_t ADC1_ReadAverage(uint8_t samples); uint8_t ADC_To_Amplitude_0_100(uint16_t adc_raw); /* Генерация */ void SineBase_Init(void); void SineBuffer_Update(uint8_t amplitude_0_100); #endif