Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 19.02.2019, 12:29  
pavell
Прохожий
 
Регистрация: 19.02.2019
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
pavell на пути к лучшему
Вопрос ADC -> DMA -> UART прерывания

Уважаемые устал биться, не работают прерывания, подскажите в чем может быть проблема? Данные идут сплошным потоком отладчик в обработку прерывания не заходит. STM32F051

main.txt
Реклама:

Последний раз редактировалось pavell; 19.02.2019 в 20:28.
pavell вне форума  
Непрочитано 19.02.2019, 13:34  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: ADC -> DMA -> UART прерывния

pavell, я конечно все понимаю, но тут нет телепатов
Начните с чтения DS, AN, errata на сайте производителя по Вашему МК, семейству, блокам используемой периферии и напишите здесь что и как Вы делали.
Сюда бы схему включения означенного в списке проблем и код программы с комментариями во вложениях. Спойлеры имеют свойство не у всех открываться, а движок может вносить коррективы в публикуемый в топике код.
Тогда будет (помимо сферического коня в вакууме) предмет для анализа

Пока по текущему коду - а кто вызывает те самые что-то_ini функции?
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 19.02.2019 в 13:40.
mike-y-k вне форума  
Непрочитано 19.02.2019, 13:58  
pavell
Прохожий
 
Регистрация: 19.02.2019
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
pavell на пути к лучшему
По умолчанию Re: ADC -> DMA -> UART прерывния

Ок, вечером добавлю вложение с кодом и коментариями, а пока убрал из под спойлера

Сообщение от mike-y-k Посмотреть сообщение
Пока по текущему коду - а кто вызывает те самые что-то_ini функции?
В main() же
pavell вне форума  
Непрочитано 19.02.2019, 16:08  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: ADC -> DMA -> UART прерывния

буфер для приема один и для ацп и для юсарт ? это так на вскидку.
По поводу прерываний : Какой уровень оптимизации кода стоит ? Они пустые функции обработки исключений и потому компилятор может не внести их в исходник. В отладчике покажите что происходит когда вручную запускаете прерывание по дма ? В кейле есть такая возможность.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2019-02-19_20-22-46.png
Просмотров: 0
Размер:	70.5 Кб
ID:	138942  
__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 19.02.2019 в 16:23.
CERGEI1982 вне форума  
Непрочитано 19.02.2019, 16:18  
28-63
Вид на жительство
 
Регистрация: 08.12.2018
Сообщений: 466
Сказал спасибо: 2
Сказали Спасибо 105 раз(а) в 71 сообщении(ях)
28-63 на пути к лучшему
По умолчанию Re: ADC -> DMA -> UART прерывния

если б это не был кал, я б поделилсо кодом для уарт-дма
28-63 вне форума  
Непрочитано 19.02.2019, 19:49  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,770 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: ADC -> DMA -> UART прерывния

Сообщение от 28-63 Посмотреть сообщение
если б это не был кал
Святому - святое и снится. А Вам - кал...
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Сказали "Спасибо" akegor
mike-y-k (19.02.2019)
Непрочитано 19.02.2019, 20:57  
pavell
Прохожий
 
Регистрация: 19.02.2019
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
pavell на пути к лучшему
По умолчанию Re: ADC -> DMA -> UART прерывния

Сообщение от CERGEI1982 Посмотреть сообщение
буфер для приема один и для ацп и для юсарт ?
Ну в этом весь смысл )
Уровень оптимизации L0

В обработчики добавил остановку ADC, что бы сразу увидеть реакцию, но ее по прежнему нет (

потыкал прерывания руками вообще ничего не понял, что есть, что нету
Нажмите на изображение для увеличения
Название: 2019-02-19_21-32-36.png
Просмотров: 0
Размер:	55.2 Кб
ID:	138967
pavell вне форума  
Непрочитано 19.02.2019, 21:04  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: ADC -> DMA -> UART прерывния

1. А разве нельзя напрямую при помощи DMA доставать данные из ADCx-›DR и класть в USARTx-›TDR?
2. А разве успеет UART с такой бешеной скоростью данные отправлять, когда настроен всего лишь на 256кбод?
3. Нет смысла делать многократные |= и &= для регистров - они же волатильные, gcc не оптимизирует повторные вызовы!
4. А можно описать потребность, ТЗ, так сказать?
Я вообще не понял, что нужно. Потому что если нужно быстро копировать данные с АЦП в уарт, то как-то это неправильно на мой взгляд. Нужно синхронизировать по отправке с уарта, а не черт-те как...
5. Посмотрите в сниппетах. Там полно примеров по DMA.
__________________
Смерть бандеровской мразоте!

Последний раз редактировалось eddy; 19.02.2019 в 21:06.
eddy вне форума  
Непрочитано 19.02.2019, 21:14  
pavell
Прохожий
 
Регистрация: 19.02.2019
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
pavell на пути к лучшему
По умолчанию Re: ADC -> DMA -> UART прерывния

Сообщение от eddy Посмотреть сообщение
1. А разве нельзя напрямую при помощи DMA доставать данные из ADCx-›DR и класть в USARTx-›TDR?
...
Конечно можно напрямую, но тут как раз и возникает проблема из второго вопроса. Для "синхронизации" поступающих и отправляемых данных я и применил буфер. Решение спорное, но применил его.
3. ну есть такой момент, надо отучаться )
Да задача именно быстро передавать данные из АЦП в УАРТ. По моей задумке сама синхронизация должна быть реализована в обработчике прерываний.
pavell вне форума  
Непрочитано 19.02.2019, 21:33  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: ADC -> DMA -> UART прерывния

АЦП сильно быстрей буфер заполняет. Поэтому лучше прерывание ПДП ставить не на завершение заполнения буфера, а на половину завершения.
Не нужно указывать циклический режим, т.к. пока будете сидеть в обработчике прерывания, пойдет заполнение по следующему кругу и предыдущие данные похерит.
Кроме того, вот будете вы пихать данные с АЦП в уарт. И как читатель определит, что к нему идет в этом потоке, где нет никаких меток?

Чтобы обеспечить постоянную загрузку канала я бы сделал так. Запускаем ПДП на АЦП. На середине заполнения буфера выставляем флаг, что можно запускать ПДП на уарт. Прерывание по окончанию буфера АЦП не нужно. А вот по окончанию передачи уартом - нужно. Как только передача закончилась, опять запускаем заполнение буфера со стороны АЦП, а пока он первую половину заполняет, отправляем метку, что предыдущая порция данных кончилась и сейчас пойдет новая. А тут и флаг, разрешающий отправку, подоспеет. В принципе, можно вообще без него работать и сразу после отправления метки запускать ПДП на отправку буфера.
__________________
Смерть бандеровской мразоте!
eddy вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен пример по ADC и UART demetrius2003 Песочница (вопросы новичков) 46 24.12.2018 09:22
stm32F030f4 + ADC + DMA miwutka ARM 40 05.11.2016 12:42
STM32 - Tips 'N Tricks nahimovv ARM 8 08.08.2016 14:35
Tim19 -> DMA -> значение ADC в memory kvark85 ARM 6 03.06.2014 15:00
STM32 ADC + DMA в циклическом режиме Nik_UFO Микроконтроллеры, АЦП, память и т.д 4 24.02.2012 18:49


Часовой пояс GMT +4, время: 03:05.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot