Jump to content
Ivan Rusev

stm32f4 DMA в режиме прерывания. cmsis

Recommended Posts

Меня интересует какие флаги в преривании устанавливать по ДМА ?Кусок кода можно?

Share this post


Link to post
Share on other sites
13 часов назад, Ivan Rusev сказал:

Меня интересует какие флаги в преривании устанавливать по ДМА ?Кусок кода можно?

То есть вам совершенно не понятно что это совершенно не адекватный вопрос с технической точки зрения, и это совершенно не адекватное название темы???

Чтобы устанавливать какие либо флаги у вас должна быть цель, но вы эту цель никак не заявили в ваших высказываниях, что заставляет всех думать что цели у вас просто нет!

А пока у вас нет цели вы можете сколько угодно устанавливать все флаги скопом хоть в два ряда!


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites

Ну мне хочется событие по АЦП  прописать в прерывании по ДМА.Можете ещё минус поставить

if (adc_data>2045)

{
 PORT=1;
}

else

{

 PORT=0;
}

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Экономичные решения МЕAN WELL для надежных разработок» (30.09.2021)

Компания Компэл приглашает 30 сентября на вебинар посвященный экономичным решениям МЕAN WELL. На вебинаре мы рассмотрим, как решения MEAN WELL позволяют сэкономить при выборе недорогого источника питания. Будут представлены основные группы источников питания по конструктивным признакам и по областям применения в контексте их стоимости или их особенностей, позволяющих снизить затраты на электропитание конечного устройства.
Подробнее

17 минут назад, Ivan Rusev сказал:

Ну мне хочется событие по АЦП  прописать в прерывании по ДМА

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

чтение значений АЦП + установка порта в зависимости от этого значения в коде

на использование модуля ДМА чтобы это делалось аппаратными средствами этого модуля ДМА (передача значений АЦП в порт).

Вам надо не флаги в прерывании, а надо разбираться с РЕГИСТРАМИ для управления переферийным модулем ДМА + там есть специальные РЕГИСТРЫ  и в модуле АЦП! которые тоже надо правильно сконфигурировать для того чтобы перенаправить считанные значения АЦП через модуль ДМА, вообще говоря и порт тоже надо соответствующим образом настраивать, а про прерывания от ДМА я даже не буду пытаться здесь описать что там надо. И это наверно самое короткое, простое и поверхностное описание того что надо там понимать и делать!

Как видите это очень нудная, кропотливая и сложная тема и работа. Мне требовались недели чтобы по англоязычной документации написать тестовую программу и додебажить ее до рабочего состояния и убедиться что я все правильно понял и все правильно делаю. Это было уже несколько лет назад и теперь мне снова нужно было бы пару недель что бы вернуться в эту тему! И у меня были ДМА на других процессорах.

Я, извините, не верю что при вашем уровне знаний по теме, вы сможете в этом направлении достичь каких то результатов и не думаю что вам можно помочь по этой теме-задаче.


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites

Модульные RJ-соединители KLS — масштабное пополнение склада Компэл

Продуктовая линейка компании KLS на складе Компэл пополнилась модульными соединителями типа RJ. Ассортимент представлен неэкранированными соединителями RJ11, RJ12 и RJ45 для построения базовых информационных сетей, а также экранированными RJ45 с трансформатором для реализации систем передачи данных между узлами ЛВС.

Подробнее

Спасибо за совет.Если вам неделя то тмне месяца 2- 3 понадобиться.Дма только на сortex m3 немного освоил.АЦП инжектированые кананалы по таймеру запуск  тоже освоил.

Share this post


Link to post
Share on other sites

Вебинар «Microchip и современный подход к искусственному интеллекту. Разворачиваем нейронную сеть на 32-битном микроконтроллере» (13.10.2021)

Приглашаем всех желающих 13 октября 2021 г. посетить вебинар, посвященный искусственному интеллекту, машинному обучению и решениям для их реализации от Microchip. Современные среды для глубинного обучения нейронных сетей позволяют без детального изучения предмета развернуть искусственную нейронную сеть (ANN) не только на производительных микропроцессорах и ПЛИС, но и на 32-битных микроконтроллерах. А благодаря широкому портфолио Microchip, включающему в себя диапазон компонентов от микроконтроллеров и датчиков до ПЛИС, средств скоростной передачи и хранения информации, возможно решить весь спектр задач, возникающий при обучении, верификации и развёртывании модели ANN.
Подробнее

14 часов назад, Ivan Rusev сказал:

Дма только на сortex m3 немного освоил.

как же вы его освоили если вопросы формулируете в совершенном противоречии с принципами работы ДМА. Если есть желание разбираться:

контроллер ДМА это отдельное устройство! Он копирует данные взятые по одному адресу памяти(источник) в другой адрес-назначения (бывает что другого типа памяти - надо понимать что бывают разные типы памяти и не всегда можно создать канал из одной памяти в другую, канал это абстракция это совокупность всех настроек ДМА для того что бы происходило банальное копирование)

соответственно вы должны задать контроллеру ДМА адрес памяти источника, адрес памяти назначения,

один из битов (обычно это флаги прерываний) по которому запускается копирование очередной порции

Детали в каждом процессоре свои и я их особо и не помню, это что то про: как задать тип памяти, кол-во байт для копирования,  тип инкремента источника и дестинейшена, какие то "барсты" - вроде как групировки, ...

Там море нюансов и не всегда понятно: надо на них обращать внимание или нет - очень сложно понять как выяснить на практике.


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites
19 часов назад, Ivan Rusev сказал:

if (adc_data>2045)

{
 PORT=1;
}

else

{

 PORT=0;
}

Не знаю, может Вам вместо dma подойдёт режим таймера «Analog watchdog» (раздел 11.3.7 RM). Суть в том, что в регистры ADC_HTR и ADC_LTR записываются значения верхнего и нижнего порога соответственно, потом в рег. ADC_CR1 включается прерывание битом AWDIE и выбирается необходимый режим (по 49 таблице RM). Если значение входного сигнала на выбранном канале выйдет за пределы заданного в рег. ADC_HTR и ADC_LTR диапазона, то сработает прерывание, в обработчике которого можно делать то, что необходимо.

Share this post


Link to post
Share on other sites
06.05.2021 в 12:07, x-revers сказал:

Не знаю, может Вам вместо dma подойдёт режим таймера «Analog watchdog» (раздел 11.3.7 RM). Суть в том, что в регистры ADC_HTR и ADC_LTR записываются значения верхнего и нижнего порога соответственно, потом в рег. ADC_CR1 включается прерывание битом AWDIE и выбирается необходимый режим (по 49 таблице RM). Если значение входного сигнала на выбранном канале выйдет за пределы заданного в рег. ADC_HTR и ADC_LTR диапазона, то сработает прерывание, в обработчике которого можно делать то, что необходимо.

DMA Как же? 

Share this post


Link to post
Share on other sites

Я извеняюсь.Всё сделано.Усложню задачу попробую запустиь 2 -3 канала.ИЗвените

main.c

Share this post


Link to post
Share on other sites
21 час назад, Ivan Rusev сказал:

Я извеняюсь.Всё сделано.

Ну можно только порадоваться за вас. Раз все сделано, то делать больше ничего не надо, на этом и покончим.


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites
5 часов назад, ruhi сказал:

Ну можно только порадоваться за вас. Раз все сделано, то делать больше ничего не надо, на этом и покончим.

Ни совсем.Задача усложнилась .Нужно два вывода АЦП прописать.Настроить я знаю как .И один управляет одним светодиодом(портом).А другой другим светодиодом(портом). А буфер один.Вот  тогда с АЦП будет всё.На AVR  знаю как это сделать а на STM?

А ШИНа КАН а ЦАП

Share this post


Link to post
Share on other sites
17 часов назад, Ivan Rusev сказал:

А буфер один.

Так сделайте два буфера, если проблема в этом. Что вам мешает?


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites
Posted (edited)

@Ivan Rusev Если несколько входов АЦП нужно измерять, что включаете режим сканера. Тогда АЦП сам будет по кругу переключать каналы и по ДМА складывать результаты измерений в один буфер друг за другом: 1-2-3-4-5-1-2-3-4-5-1-2-3-4-5...

Edited by Yurkin2015

Share this post


Link to post
Share on other sites
8 минут назад, Yurkin2015 сказал:

@Ivan Rusev Если несколько входов АЦП нужно измерять, что включаете режим сканера. Тогда АЦП сам будет по кругу переключать каналы и по ДМА складывать результаты измерений в один буфер друг за другом: 1-2-3-4-5-1-2-3-4-5-1-2-3-4-5...

Но их в прерывании нужно как то прописывать.Это 5 каналов Значить в буфере значений 5 .допустим от 1 до 5.Массив?

Share this post


Link to post
Share on other sites

Да. В данном случае слова буфер и массив означают одно и то же.

Share this post


Link to post
Share on other sites
4 часа назад, MasterElectric сказал:

Этот форум превратился в дурдом ИМХО.

А что это такое?

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • По мне это недоработка программы. Это придется теперь рисовать 4 полигона, чтобы обогнуть нужную область... Благодарю за ответ.
    • Во это я вчера на мурлыкался. 
    • Мечта любого радиолюбителя сделать удобный инструмент для демонтажа. У меня есть идея такая, не знаю насколько она будет хорошей, сделать паяльник с оловоотсосом.. Да, такие существуют, но скажем так, качеством вакуума они мало радуют, тем более нужно постоянно возводить поршень, и т.п. И вот я задумался, а чтобы не сделать самому паяльник-оловоотсос. Допустим есть вакуумный насос, который выкачивает воздух в балоне, при нажатии на клапан, воздух всасывается. Для жала я выбрал стальную трубку 5мм. Корпус (ручка) дерево. Так как я раньше паяльники не мотал, подскажите пожалуйста люди с опытом, сколько выдерживает дерево нагрев? Ведь жало будет нагреваться до 300 градусов и выше. Второй вопрос. Как подобрать толщину и длину нихромовой проволоки? Эксперементальным путём? Третье, видел что мотают нихромовую проволоку на какую-то слюду или стекловолоконную ткань. На что мотать лучше? Ну и последнее, что бы трубка для насоса не расплавилась если надеть на жало, то в корпусе паяльника, есть разрыв. Но там скорее всего будет скапливаться припой, есть ли какие-то идеи чтобы заполнить этот разрыв? Боюсь стеклянная трубка треснет от жала 300 градусов. Ну и конечно, хорошо бы чтобы припой не приставал к жалу и жало не деградировало, я выбрал стальную трубку, может алюминиевая трубка лучше, как вы думаете?
    • R2 - 119.2К,  C2 - оказался м33р (32pf), и в пакетике, подписанном 20pf - все такие, продавец ладно, а вот я при монтаже прошляпил. Зато появился подозреваемый. Сегодня скорее всего не успею с экспериментами.  Звуковая карта, пока без регулятора громкости, то есть програмный win7.
    • Вот и займите нишу, конкурентов то нет. Сам покупаю б.у неисправное за копейки и ремонтирую. В вашем случае - при неисправности самого драйвера(выгорании платы), ставлю диодные ленты на 12V. Приходиться правда одну матовую плёнку убирать и иногда добавлять интегральный стабилизатор на 12V типа 78L12 на 1А. Но вы, судя по вопросам - сам клиент сервиса. Требуется лишь добавить кнопочку за 15 руб, т.к. ключ доб. лень. Мониторы все с разбора за копейки. Если матрица целая - ремонт рентабелен. Сделано порядка 6 шт. Можно наверное и мощнее ленты и ярче поставить, просто это самая дешёвая. А ремонт копеечный.  Есть уже и пара тв с подобной темой. Но там надо ленты рассчитывать, 12V там не пройдёт. И ток другой. В тв и матрицу снять нельзя с перепугу. Опыт обязателен. Сам тренировался на сломанных тв с сломанной матрицей.
    • Написал не то, что подумал.  Получим обычный косой мост, где в качестве диодов будут обратные диоды транзисторов (если они есть, в некоторых бтиз их нету) 
    • @astarter , дана универсальная методика ремонта УНЧ, без измерений можно только случайно попасть в цель, без них ремонта не бывает, 
  • Similar Content

×
×
  • Create New...