Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Не могу настроить АЦП по событию

Ср янв 17, 2018 18:25:20

Камень STM32f103
хочу начать преобразование по событию Timer 1 CC1 event. Ножка PA1. Не пойму как настроить таймер1 чтоб отправлялось событие на АЦП. Однократную конверсию настроил легко. По событию не получается. хелп.
Код:
   RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;       
   RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;         
   RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;         
   
   GPIOA->CRL &= ~GPIO_CRL_CNF1;                  //PA1 AI
   GPIOA->CRL &= ~GPIO_CRL_MODE1;               
   
   RCC->CFGR |= RCC_CFGR_ADCPRE_DIV6;           //72/6=12MHz < 14MHz
   
  ADC1->CR2 |= ADC_CR2_CAL;                       //calibration
   while (!(ADC1->CR2 & ADC_CR2_CAL));

//   ADC1->CR2 |= ADC_CR2_CONT;                  //Continuous conversion mode
   ADC1->CR2 &= ~ADC_CR2_EXTSEL_2;               //TIM1_CC1 event
   ADC1->CR2 |= ADC_CR2_EXTTRIG;                  //Conversion on external event enabled
   ADC1->CR2 |= ADC_CR2_ADON;                      //A/D Converter ON / OFF
   ADC1->SMPR2 |= ADC_SMPR2_SMP0;               //PA1 ADC1 ch1  (111: 239.5 cycles)
   ADC1->SQR3 |=ADC_SQR3_SQ1_0;                  //SQ1 - 1ch
   
   RCC->APB2ENR|=RCC_APB2ENR_TIM1EN;          //
   TIM1->PSC=7200-1;                                    // 10000
   TIM1->ARR=400;                                       // 0,04
   TIM1->CCR1=400;
   TIM1->CR2 |= TIM_CR2_MMS_1;                     //
   TIM1->CR1|=TIM_CR1_CEN;

Re: Не могу настроить АЦП по событию

Ср янв 17, 2018 19:33:41

Хоть сэмплирования и по таймеру но первый старт вручную...

Re: Не могу настроить АЦП по событию

Чт янв 18, 2018 10:32:17

Хоть сэмплирования и по таймеру но первый старт вручную...

т.е. старт преобразования вручную? нужно прописывать единожды ADC1->CR2 |=ADC_CR2_SWSTART;?

Re: Не могу настроить АЦП по событию

Чт янв 18, 2018 15:13:21

Давно бы запустил уже...
Ответить