Блин, как меня задолбал этот АЦП, все никак не могу настроить(((((((((
Не могу понять почему ацп не тактируется от таймера!!!!!!!!
Код
//*********************TIM3*************************
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // тактирование таймера
TIM2->PSC = 160-1; // предделитель
TIM2->ARR = 1000-1; // переполнение
TIM2->CR2 |= TIM_CR2_MMS_1; // output (TRGO)
TIM2->CR1 |= TIM_CR1_CEN; // запуск счета
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
//********************ADC1**CH6 PA6***************
RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
//********************DMA***************************
RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN;
DMA2_Stream0->CR&=~ DMA_SxCR_CHSEL; // 000: channel 0 selected
DMA2_Stream0->PAR= (uint32_t)&ADC1->DR; //
DMA2_Stream0->M0AR=(uint32_t)&BUFF[0]; // Массив
DMA2_Stream0->NDTR=100; // Длина буфера
DMA2_Stream0->CR|= DMA_SxCR_MINC; // Инкремент адреса
DMA2_Stream0->CR|= DMA_SxCR_MSIZE_0; // 16 бит
DMA2_Stream0->CR|= DMA_SxCR_PSIZE_0; // 16 бит
DMA2_Stream0->CR|= DMA_SxCR_CIRC; // Непрерывный режим
DMA2_Stream0->CR&=~ DMA_SxCR_DIR; // 01: peripheral-to-Memory
DMA2_Stream0->CR|= DMA_SxCR_PL; // 11: Very high приоритет
DMA2_Stream0->CR|= DMA_SxCR_EN; // Вкл. передачу
GPIOA->MODER |= GPIO_MODER_MODER6; //ADC1 CH6 PA6
ADC1->CR1 |= ADC_CR1_SCAN;
ADC1->CR2 |= (ADC_CR2_EXTSEL_1|ADC_CR2_EXTSEL_2);// 0110 tim 2 (TRGO)
ADC1->CR2 |=ADC_CR2_DMA; //разрешаем рабуту DMA
// ADC1->CR2 |=ADC_CR2_CONT;
ADC1->SQR3 =6;
ADC1->CR2 |=ADC_CR2_SWSTART;
ADC1->CR2 |=ADC_CR2_ADON;
Если установить бит "ADC_CR2_CONT" то данные попадают в буфер, но меня такой режим не устраивает! мне необходимо чтобы ацп измерял по таймеру!Все биты для тактирования, от таймера, я установил [PHP]ADC1->CR2|=DC_CR2_EXTSEL_1|ADC_CR2_EXTSEL_2);// 0110 tim 2 (TRGO)[/PHP] но толку нет (((((
Подскажите пожалуйста, в чем может быть причина?
Цитата(Сергей Борщ @ Apr 15 2013, 23:48)

Код
// start conversions
ADC1->CR2 = 0
| 1 * ADC_CR2_ADON // A/D Converter ON
| 0 * ADC_CR2_CONT // Continuous Conversion disabled
| 0 * ADC_CR2_CAL // A/D Calibration
| 0 * ADC_CR2_RSTCAL // Reset Calibration
| 1 * ADC_CR2_DMA // Direct Memory access enabled
| 1 * ADC_CR2_ALIGN // Data Alignment: left
| 7 * ADC_CR2_JEXTSEL_0 // External event for injected group: JSWSTART
| 0 * ADC_CR2_JEXTTRIG // External Trigger Conversion mode for injected channels: disabled
| 4 * ADC_CR2_EXTSEL_0 // External Event for regular group: TIM3TRGO
| 1 * ADC_CR2_EXTTRIG // External Trigger Conversion mode for regular channels: enabled
| 0 * ADC_CR2_JSWSTART // Start Conversion of injected channels
| 0 * ADC_CR2_SWSTART // Start Conversion of regular channels
| 0 * ADC_CR2_TSVREFE // Temperature Sensor and VREFINT disabled
;
Спасибо, за совет)Форма записи-действительно удобней!!!