ukr823f

STM32 HAL + ADC (несколько каналов)

3 сообщения в этой теме

ukr823f    4

Приветствую. Товарищи, использование нескольких регулярных каналов АЦП STM32F4 собственно освоил. А вот теперь возник вопрос такого рода. А есть ли возможность эти несколько каналов опрашивать по отдельности. Например как в AVR, мы там пишем функцию read_adс с передачей параметра номера канала для оцифровки. ТО есть мы можем например 100 раз опросит канал 0, потом 3 раз канал 2, а потом 2 раза канал1.  И потом пару секунд вообще ничего не опрашивать. Касается это именно регулярных каналов, так как я понимаю, инжектированные вродле как можно так оформит, но их 4 и немного не хватает..

Собственно вот такой вопрос.

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


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

регистр данных общий. От этого вся и проблема. Лучше всего опрашивать постоянно, а сколько нужно значений просто откладывать в сторону да и все. Не одо и то же получится?

Или тогда делать динамическую конфигурацию каналов. Инитишь конкретный канал, забираешь оттуда 100 значений, делаешь деинит и так по новой для каждого. Только я вот лично смысла в этом не вижу вообще, так же как и делать разную дискретизацию отсчетов.

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


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

uint32_t ADC_Result(ADC_HandleTypeDef *hadc, uint32_t ch){
       ADC_ChannelConfTypeDef sConfig;
       uint32_t adcResult = 0;

       sConfig.Channel = ch;
       sConfig.Rank = ADC_REGULAR_RANK_1;
       sConfig.SamplingTime = ADC_SAMPLETIME_13CYCLES_5;
       HAL_ADC_ConfigChannel(hadc, &sConfig);
       HAL_ADC_Start(hadc);
       HAL_ADC_PollForConversion(hadc, 100);
       adcResult = HAL_ADC_GetValue(hadc);
       HAL_ADC_Stop(&hadc1);
       return adcResult;
}

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


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

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

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

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

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

Загрузка...

  • Сообщения

    • Здравствуйте! В разделе Ардуино не нашел подходящей темы,  да в принципе и не совсем по ардуино вопрос. Ниже приведена часть схемы прозвонки, которая может показывать как  напряжение, так и сопротивление. Измерение напряжение происходит посредством делителя, сопротивления-знаем напряжение стабилизатора и сопротивление прецизионного резистора, и через падение напряжения Ардуино вычисляет сопротивление участка. А теперь проблема, коммутация входов происходит через реле, которое управляется кнопкой. Программно была поставлена блокировка, чтоб реле не срабатывало если есть напряжение, но увы это не помогло. Спасет ли схему от случайного попадания напряжения  (~220-380В) если я поставлю диод VD2 (чтоб защитить источник стабилизированного напряжения) и VD4 (чтоб не спалить ардуино). По сути вход ардуино высокоомный и простой стабилитрон должен выдержать.
    • Заменил, поставил новые с магазина. Да еще не сказал плоттер включается, переходит по меню и сохраняет настройки.
    • Гораздо проще применить уже готовое решение не подключая дисплея например. Я, по своей неопытности, готовые исходники с atmega8 на atmega328p примерно 2 месяца переводил. А Вы хотите, что бы кто-то взялся за неизвестный ему МК под который пишется неизвестно на чём.
    • А куда верхний полигон силовой земли потеряли? Или плата трехслойная? Если нет, то плата в принципе нерабочая.
    • Существует формула для расчёта теплового сопротивления теплоотвода:
      Q=(T2-T1)/P-Q1-Q2, где
      Т2 - максимальная температура кристалла транзистора по справочнику,
      Т1 - максимально допустимая температура в коробке с нашим устройством, 
      P - рассеиваемая на транзисторе мощность,
      Q1 - тепловое сопротивление кристалл-корпус по справочнику, 
      Q2 - тепловое сопротивление корпус-радиатор. Освежите память.