Перейти к содержанию
    

Вычисление Vref в ADC

Вычисляю

/* Calibration procedure */  
ADC_VoltageRegulatorCmd(ADC2, ENABLE);
    
Delay_us(20);
    
ADC_SelectCalibrationMode(ADC2, ADC_CalibrationMode_Single);
ADC_StartCalibration(ADC2);
  
while(ADC_GetCalibrationStatus(ADC2) != RESET );
vref_cal = ADC_GetCalibrationValue(ADC2);  //79

ADC_RegularChannelConfig(ADC2, ADC_Channel_Vrefint, 1, ADC_SampleTime_7Cycles5);
    
/* Enable ADC21 */
ADC_Cmd(ADC2, ENABLE);

vref_data = ADC_Read(ADC2, ADC_Channel_Vrefint, 1);  //1208

                     //79        //1208    
vref = (3300 * vref_cal) / vref_data;  // = 215 ???

if (vref > 2850 && vref < 3500)
    return ADC_INIT_OK;
else
{
   vref = 3300;
   return ADC_INIT_ERROR;
}

получаю vref = 215.

 

где прокол?

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

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

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...