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

 
 
> Analog Watchdog в STM32F103
zheka
сообщение Feb 15 2015, 12:58
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Есть у кого-нибудь пример? В интернете обыскался, не нашел, а ручками что-то не получается...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zheka
сообщение Feb 17 2015, 19:28
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Спасибо, нашел.
Но есть проблема - прерывание генерируется постоянно, независимот от показаний АЦП.
Отключал прерывания и смотрел как работает АЦП - измерения правильные, шумов нет.
Вот инициализация АЦП
Код
void adc_Init()
{

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);// ʹÄÜ ADC1 ÖØÒª£¡£¡£¡

    
  
        
//////////////////////////////        
        
         /* ADC1 Configuration ------------------------------------------------------*/
  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfChannel = 1;
  ADC_Init(ADC1, &ADC_InitStructure);

  /* ADC1 regular channel14 configuration */
  ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_13Cycles5);

  /* Configure high and low analog watchdog thresholds */
  ADC_AnalogWatchdogThresholdsConfig(ADC1, 1000, 3902);
  /* Configure channel14 as the single analog watchdog guarded channel */
  ADC_AnalogWatchdogSingleChannelConfig(ADC1, ADC_Channel_0);
  /* Enable analog watchdog on one regular channel */
  ADC_AnalogWatchdogCmd(ADC1, ADC_AnalogWatchdog_SingleRegEnable);

  /* Enable AWD interrupt */
  ADC_ITConfig(ADC1, ADC_IT_AWD, ENABLE);

  /* Enable ADC1 */
  ADC_Cmd(ADC1, ENABLE);

  /* Enable ADC1 reset calibration register */  
  ADC_ResetCalibration(ADC1);
  /* Check the end of ADC1 reset calibration register */
  while(ADC_GetResetCalibrationStatus(ADC1));

  /* Start ADC1 calibration */
  ADC_StartCalibration(ADC1);
  /* Check the end of ADC1 calibration */
  while(ADC_GetCalibrationStatus(ADC1));

  /* Start ADC1 Software Conversion */
  ADC_SoftwareStartConvCmd(ADC1, ENABLE);
        
        
        
}


Вот ножка и прерывание
Код
void ADC1_2_IRQHandler(void)
{

  
   if(ADC_GetITStatus(ADC1,ADC_IT_AWD))
   {

  }  
     ADC_ClearITPendingBit(ADC1,ADC_IT_AWD);          

}


/////////////////////////////////

/* Configure PA.0 (ADC Channel) as analog input -------------------------*/
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_Init(GPIOA, &GPIO_InitStructure);



Еще раз повторюсь - показания АЦП правильные.

Что я делаю не так?

Сообщение отредактировал zheka - Feb 17 2015, 19:34
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zheka   Analog Watchdog в STM32F103   Feb 15 2015, 12:58
- - Integro   Наверное у вас гугл сломался, запрос, один из резу...   Feb 15 2015, 19:29
- - SSerge   Описание работы AWD занимает в реф. мануале меньше...   Feb 17 2015, 20:49
- - zheka   ЦитатаHighThreshold, потом LowThreshold ! Имен...   Feb 17 2015, 21:05
- - ViKo   Очередное подтверждение того, что лучше написать п...   Feb 17 2015, 21:46
- - zheka   А как сделать наоборот? Чтобы прерывание срабатыва...   Feb 18 2015, 03:48
|- - Сергей Борщ   Цитата(zheka @ Feb 18 2015, 05:48) А как ...   Feb 18 2015, 08:56
- - zheka   Хм.. а как бы сделать так, чтобы прерывание генери...   Feb 21 2015, 11:40
- - Сергей Борщ   В обработчике прерывания перенастраивать пределы.   Feb 22 2015, 07:10
- - Ruslan.B   А у меня проблема на f100RBT6, может чего-то упус...   Feb 28 2017, 09:15
|- - ViKo   Цитата(Ruslan.B @ Feb 28 2017, 12:15) фак...   Feb 28 2017, 09:27
|- - Ruslan.B   Цитата(ViKo @ Feb 28 2017, 15:27) АЦП еще...   Feb 28 2017, 09:42
- - ViKo   Я, обычно, в отладчике смотрю на флаги. И думаю, п...   Feb 28 2017, 09:54
- - jcxz   Цитата(ViKo @ Feb 28 2017, 11:54) Я, обыч...   Feb 28 2017, 15:15


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

 


RSS Текстовая версия Сейчас: 14th August 2025 - 08:21
Рейтинг@Mail.ru


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