|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
||||||
Опрос нескольких регулярных каналов АЦП STM32F10020.11.2018, 09:17. Показов 15140. Ответов 30
Всем привет! Проблема с опросом нескольких регулярных каналов АЦП STM32F100 (Отл плата STM32F100VL Discouvery). На входы PA0 и PA1 повесил потенциометры. При пошаговой отладке в IAR данные из ADC1->DR в a[0] попадают, а вот a[1] по нулям, как потенциометр ни крути.
Читал, что такие вещи лучше делать через DMA, но хотелось бы для начала попробовать без него...
0
|
||||||
| 20.11.2018, 09:17 | |
|
Ответы с готовыми решениями:
30
Порядок оцифровки групп регулярных каналов АЦП в режиме dual mode AVR АЦП использование нескольких каналов Измерение нескольких каналов АЦП один раз за период сигнала запуска |
|
0 / 0 / 0
Регистрация: 28.11.2018
Сообщений: 1
|
|
| 29.11.2018, 19:35 | |
|
Привет всем !
Ранее я программил на Атмега много лет, очень нравится MSP430FR* , сейчас вот хочу перейти в своих разработках на STM32. По цене и возможностям (для меня) выбрал STM32L152RBT6 . Хорошая цена и доступность, на борту хватает всего для моей работы. Но вот документация написана........ черт ногу сломит. Непривычно как-то все...Моя задача такая: 1) надо измерять в цикле (ADC SCAN??) 4-5 каналов АЦП 12 бит, (выводы АЦП идут подряд "на ножках") читал что как-то группы АЦП можно создавать но не понял что это... 2) данные от каждого замера АЦП складывать в память (массив или просто сразу "в переменную") RAM. 3) не хочу прерываний тут вообще! в MSP430 можно было настроить "начальный канал и конечный" и оно само писало в память типа ADCМЕМ1....ADCМЕМ16. В STM32 читал-читал так и не понял как такое сделать. Ткните пожалуйста в доки где это расписано - в базовых даташитах все как-то кратко и не очень понятно как настраивать. Т.е. хочу чтобы основной процесс в main() будет сам вычитывать переменные из памяти, не производя никаких прерываний для обработки АЦП или всего буфера. Буфер циклический - новое значение затирает(замещает переписывает) старое, никаких прерываний не вызывает - переписали и пошли дальше. вопрос так-же по DAC - его обязательно по прерыванию обслуживать? если я(например) хочу "выпилить" некий сигнал на выходе - то я могу загнать в буфер(массив данных в памяти) числа, и дать команду "играй" и чтобы в цикле само без прерываний "выворачивало" цифры из памяти (массив? переменные?) в DAC вывод "на ножку". Заранее спасибо за помощь. Я так понимаю что периферия что на "Отлаждочных платах" что на STM32L152RBT6 одинаковая по сути управления, так что если есть для STM32F* примеры то я думаю они мне для понимания подойдут. P.S> что нравилось в MSP430 - там куча примеров есть готовых программ на применение перферии от производителя. Сильно помогало. P.P.S> не хочу никаих RTOS и чужих библиотек вообще - все пишу сам. Хочу быть уверенным в коде и том что происходит.
0
|
|
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
| 29.11.2018, 19:44 | |
|
AlexSor, если будешь разбираться то создай отдельную тему. А так гугли связки ADC+DMA, DAC+DMA
0
|
|
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
||
| 29.11.2018, 23:23 | ||
|
AlexSor,
Не по теме: Это проходит) Ну вот в этой теме автор с небольшой помощью смог завести оцифровку двух каналов АЦП с ДМА без участия ядра и прерываний. Чтобы завести 5 каналов надо добавить 3 строчки и изменить еще парочку. Посмотрите, что он делает, сравните с даташитом. Сильно сомневаюсь в каких либо сильных отличиях в работе АЦП и ДМА в F1 серии и L1 серии. Есть подозрения что регистры и биты одинаково называются. Пробуйте пишите, выкладывайте, подскажем.
1
|
||
|
5 / 5 / 0
Регистрация: 17.09.2018
Сообщений: 43
|
||||||
| 03.12.2018, 17:48 | ||||||
|
Доброго времени суток !
2ТС Накидал быстренько вам пример, рабочий, опрос 2-х каналов А0 и А1 в произвольный буффер
ну собственно вот и все, по желанию можно добавить прерывания - конец преобразования; конец пересылки или просто смотреть регистры статуса. Как вы можете видеть, для правильной организации работы периферии, необходимо хорошо понимать принципы ее работы. И ни HAL ни SPL вам в этом не помогут, только запись длинней сделают. Внимательно читайте RM и учите возможности инструмента на котором работаете (данный листинг для GCC). Желаю удачи в вашем начинании, но лучше отучиться в профильном ВУЗ-е, понимание придет намного быстрей.
0
|
||||||
| 03.12.2018, 18:44 | |
|
0
|
|
|
5 / 5 / 0
Регистрация: 17.09.2018
Сообщений: 43
|
|
| 03.12.2018, 18:57 | |
|
Конечно смогу, я комменты писал находу, уже в браузере. Для того что бы вы могли планировать работу АЦП (как и любую другую периферию) вы должны знать биты управления этой периферией, просто для того что бы понимать как ее применять. То есть вы еще ничего не пишете, вы только проектируете свое устройство. И для того что бы вы могли правильно спроектировать работу ваших датчиков, моторчиков, нагревателей, и т.д. Вы четко должны представлять как работает ваша периферия и какие функции, на какую периферию вы возложите и каким методом.
А если вам для простого включения периферии нужен HAL, то боюсь представить, что вы там на проектировали.
0
|
|
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
| 03.12.2018, 21:41 | |
|
Void1509, вы бы хоть осмысленные маски битов использовали, которые в CMSIS прописаны. А так, кто в лес кто по дрова, где HEX, где DEC. Рандомные числа в регистрах. Если писать код только ради того, чтобы написать его "на регистрах" - это бесполезные трудозатраты. Даже "на регистрах" можно писать код читаемым.
0
|
|
|
5 / 5 / 0
Регистрация: 17.09.2018
Сообщений: 43
|
|
| 04.12.2018, 00:06 | |
|
Уважаемые господа !
Приведенный мной код, написан так как удобно лично мне. Это мое субъективное мнение, по поводу вопроса ТС. Переводить восьмеричные, десятичные, шестнадцатиричные числа в двоичные я научился еще в 12 лет и по этому такая запись меня не смущает. К тому же эта запись очень лаконична, просто лень было писать много букв на SPL. Но я хотел показать, что пишите вы хоть на SPL, хоть на HAL, хоть на CMSiS это без разницы ! Все равно вам надо понимать как соответствующие биты будут установлены в портах. То есть, я прочитал RM и мне необходимо запустить АЦП в определенном режиме, я по RM нашел биты которые мне нужны в регистрах настройки АЦП. Далее если я пользуюсь SPL или HAL мне нужно выяснить - какие функции устанавливают или сбрасывают интересующие меня биты. Или другой вариант - без SPL или HAL, я напрямую устанавливаю или сбрасываю интересующие меня биты. RM то описан в БИТАХ, а не в функциях HAL или SPL ! А чего я хочу от АЦП (в частности) я узнаю по RM. По этому мне кажется намного проще - прочитать RM, выяснить режим работы, по RM установить биты обеспечивающие этот режим, чем выяснять как установить те же биты через HAL или SPL.
0
|
|
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
||||||||||||
| 04.12.2018, 09:15 | ||||||||||||
|
Void1509,
0
|
||||||||||||
|
5 / 5 / 0
Регистрация: 17.09.2018
Сообщений: 43
|
|
| 04.12.2018, 14:05 | |
|
Я же честно признался - писал "быстренько", и по коду видно, что в начале я указывал макроопределения, но ближе к окончанию стал лениться и вместо макроопределений ставить просто цифры.
0
|
|
| 04.12.2018, 14:05 | |
|
Использование нескольких каналов АЦП АЦП несколько каналов Переключение каналов АЦП atmega88 Stm8l и несколько каналов АЦП Большое количество АЦП каналов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|