реклама на сайте
подробности

 
 
> stm32f107 ацп регулярные каналы, прерывание один раз на группу
Mikron
сообщение May 31 2012, 08:10
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 82
Регистрация: 1-03-10
Пользователь №: 55 731



Добрый день, прошу помощи, данные, которые получаю с ацп по двум регулярным каналам, одинаковые.


Такое ощущение что прерывание происходит так:
канал 5 - канал 14 - прерывание ?

А как сделать так:
канал 5 - прерывание - канал 14 - прерывание?

Я еще не разобрался как узнать с какого канала в регистре DR содержатся данные, может из-за этого проблема?

код инициализации:
Код
void inic_adc1(void)
{
  ADC1->CR2 |= ADC_CR2_ADON;    //включение
  ADC1->CR2 &= ~ADC_CR2_EXTSEL; //очистка бита
  ADC1->CR2 |= ADC_CR2_EXTTRIG; //запуск от внешнего события
                                //внешнее событие - timer1
  ADC1->SQR1 = 1<<20;           //два канала
  ADC1->SQR3 = (5<<0)|(14<<5);  //номера
  ADC1->CR1 |= ADC_CR1_SCAN;    //режим сканирования
  ADC1->CR1 |= ADC_CR1_EOCIE;   //разрешение прерывания по окончанию
}


Код
void ADC1_2_IRQHandler(void)
{
  volatile static uint8_t i3=0 , i4=0;
  volatile static uint8_t flag1=1 , flag2=0;
  volatile static uint32_t summ1=0, summ2=0;

  if (ADC1->SR & (1<<1))
  {
    TIM1->CR1 &= ~TIM_CR1_CEN;

    if(flag1)
    {
      summ1+=(ADC1->DR&0xfff)>>3;    //чтение данных с первого канала
      i3++;
      if(i3>100)
      {
        i3=0;
        //if(summ/100>=174) {}  если больше что-то делаем
    //else {} если меньше что-то делаем

        summ1=0;
      }
      flag1=0;
      flag2=1;
    }
    else if(flag2)            //чтение данных со второго канала
    {
      summ2+=(ADC1->DR&0xfff)>>3;
      i4++;
      if(i4>100)
      {
        i4=0;
        //if(summ/100>=174) {}  если больше что-то делаем
    //else {} если меньше что-то делаем

        summ2=0;
      }
      flag1=1;
      flag2=0;
    }

    GPIOB->BSRR=GPIO_BSRR_BS14|GPIO_BSRR_BS15;

    ADC1->SR &= ~(1<<1);
  }
}



спасибо за помощь
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th June 2025 - 15:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01295 секунд с 7
ELECTRONIX ©2004-2016