compiles and works. But needs more testing

This commit is contained in:
2025-12-18 22:17:13 +03:00
parent 01dae2bccd
commit 7ff25c2893
50 changed files with 6884 additions and 6891 deletions

View File

@ -17,8 +17,9 @@
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "usb_device.h"
#include "main.h"
#include "usb_device.h"
#include "usbd_cdc_if.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
@ -59,9 +60,10 @@ static void MX_ADC1_Init(void);
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/* ADC_proc_shadow definition is provided here; structure is declared in main.h */
struct ADC_proc_typedef ADC_proc, ADC_proc_shadow;
struct Sweep_state_typedef Sweep_state;
/* ADC_proc/ADC_proc_shadow/Sweep_state definitions */
volatile struct ADC_proc_typedef ADC_proc, ADC_proc_shadow;
volatile struct Sweep_state_typedef Sweep_state;
volatile uint32_t curr_step_start_N = 0;
/* ADC1 circular DMA buffer definition */
uint16_t ADC1_buff_circular[ADC_BUFF_SIZE];

View File

@ -57,10 +57,9 @@
/* External variables --------------------------------------------------------*/
extern PCD_HandleTypeDef hpcd_USB_OTG_FS;
extern DMA_HandleTypeDef hdma_adc1;
/* USER CODE BEGIN EV */
extern struct ADC_proc_typedef ADC_proc, ADC_proc_shadow;
extern struct Sweep_state_typedef Sweep_state;
/* USER CODE END EV */
/* USER CODE BEGIN EV */
/* Externs are provided via main.h; no extra declarations needed here */
/* USER CODE END EV */
/******************************************************************************/
/* Cortex-M4 Processor Interruption and Exception Handlers */
@ -206,7 +205,7 @@ void SysTick_Handler(void)
void EXTI0_IRQHandler(void)
{
/* USER CODE BEGIN EXTI0_IRQn 0 */
Sweep_state.curr_step_start_DMA_N = ADC_BUFF_SIZE - hdma_adc1.Instance->NDTR;
Sweep_state.curr_step_start_DMA_N = ADC_BUFF_SIZE - hdma_adc1.Instance->NDTR;
if (Sweep_state.curr_step_start_DMA_N < ADC_BUFF_SIZE/2) {
Sweep_state.curr_step_started_flag =1; // first half DMA buffer
} else{