Глюк с АЦП или что я не так настроил? Плата дискавери value line настройка АЦП. Запуск битами JSWSTART и SWSTART в прерывании таймера. Каналы настроены регулярные всегда AN0 инжектированные - всегда AN5, так вот на последней физически 2В, а АЦП меряет то 0 то 5 или ещё какую фигню.
--
написал вот так
// CNT_CONVER ANx JSMP4 JSMP3 JSMP2 JSMP1
ADC1->JSQR = (0 << 20) | (5 << (5 * 3)) | (5 << (5 * 2)) | (5 << (5 * 1)) | (5 << (5 * 0));
И всё заработало. Не пойму почему так, ведь если количество преобразований инжектированных каналов ставим 1 то должен обрабатываться только один канал - первый. И вообще ничего не понял что это и почему это, но работает :) Позже проведу разбор полетов
void AdcInit(void)
{
...
RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
GPIOA->CRL &= ~((0x0f << 0) | (0x0f << 20)); // an0 and an5
ADC1->CR1 = 0;
ADC1->CR2 = 0;
ADC1->SMPR2 |= ADC_SMPR2_SMP0_2 | ADC_SMPR2_SMP0_1| ADC_SMPR2_SMP0_0;
ADC1->SMPR2 |= ADC_SMPR2_SMP5_2 | ADC_SMPR2_SMP5_1| ADC_SMPR2_SMP5_0;
ADC1->SQR1 = 0; // one conversation on AN0
ADC1->SQR2 = 0;
ADC1->SQR3 = 0; // AN0 is selected
ADC1->JSQR = 0x0000005; // one conversation on AN5
ADC1->CR2 = ADC_CR2_EXTSEL // event select for regular group is soft start
| ADC_CR2_JEXTSEL // event select for injected group is soft start
| ADC_CR2_JEXTTRIG
| ADC_CR2_EXTTRIG;
ADC1->CR1 |= ADC_CR1_SCAN;
//ADC1->CR1 |= ADC_CR1_JEOCIE;
//ADC1->CR1 |= ADC_CR1_EOCIE;
//NVIC_EnableIRQ(ADC1_IRQn);
//NVIC_SetPriority(ADC1_IRQn, 4);
ADC1->CR2 |= ADC_CR2_ADON;
__NOP();__NOP();__NOP();
ADC1->CR2 |= ADC_CR2_CAL;
while(ADC1->CR2 & ADC_CR2_CAL)
continue;
// TMR2 - sample generator
TIM2->CR1 &= ~TIM_CR1_CEN;
TIM2->CR1 = 0x05 << 4;
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
TIM2->SR = 0;
TIM2->CNT = 0;
TIM2->ARR = 375 - 1; // 8 kHz
//TIM2->CCR2 = 200; // CC2 event
TIM2->PSC = 0;
//TIM2->CCMR2 = TIM_CCMR2_OC4M_2 | TIM_CCMR2_OC4M_1;
TIM2->DIER |= TIM_DIER_UIE;
TIM2->CR1 |= TIM_CR1_CEN;
NVIC_EnableIRQ(TIM2_IRQn);
NVIC_SetPriority(TIM2_IRQn, 4);
}
-
- Должно быть для 1 преобразования: Hives(149 знак., 04.08.2014 15:52, )
- Точно)) забыл прочитать примечания. Вот хитрецы! - ANV(04.08.2014 15:56)
- Должно быть для 1 преобразования: Hives(149 знак., 04.08.2014 15:52, )