petrdynin

Mik32+ADC_start_main+ADC_read_IRQ

Sep 17th, 2025
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.88 KB | None | 0 0
  1. /* Запуск преобразования в главном цикле, получение данных по прерыванию готовности АЦП (есть в примерах разработчика) */
  2.  
  3.  HAL_EPIC_MaskEdgeSet(HAL_EPIC_ADC_MASK);
  4.  HAL_IRQ_EnableInterrupts();
  5.  
  6.  while (1)
  7.     {    
  8.         /* Запуск однократного преобразования */
  9.         HAL_ADC_Single(&hadc);
  10.         for (volatile uint32_t i = 0; i < 100000; i++);
  11.         xprintf("ADC: %u (V = %u,%03u)\n", adc_value, ((adc_value*1200)/4095)/1000, ((adc_value*1200)/4095)%1000);
  12.     }
  13.        
  14. }
  15.  
  16. ..........................................................................
  17.    
  18.  
  19. void trap_handler()
  20. {
  21.     if (EPIC_CHECK_ADC())
  22.     {
  23.         adc_value = HAL_ADC_GetValue(&hadc);
  24.     }
  25.  
  26.     /* Сброс прерываний */
  27.     HAL_EPIC_Clear(0xFFFFFFFF);
Advertisement
Add Comment
Please, Sign In to add comment