реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> STM32F4 использование DMA при работе с АЦП, DMA повреждает данные
aoreh
сообщение May 17 2013, 06:47
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 16-06-11
Пользователь №: 65 731



Цитата(DASM @ May 16 2013, 23:06) *
Хорошее правило const писать

100500%!
Go to the top of the page
 
+Quote Post
haker_fox
сообщение May 17 2013, 13:45
Сообщение #17


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (aoreh @ May 17 2013, 15:47) *
100500%!

И в отдельный файлик config.hpp вынести вместо дефайнов. Иногда такие вещи имеет смысл настраивать от проекта к проекту, и здорово, когда они в одном месте...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
DASM
сообщение May 17 2013, 14:51
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Уходим в офф, но насчет дефайнов крайне важно знать меру. Копался тут с сурцами STM - в шоке - куча огромная дефайнов, все вызывают друг друга (подставляются),но, главное - НАХРЕНА чтобы записать один переферийный регистр, причем один раз при включении питания, городить всю эту ахинею, в которой честно скажу, за полчаса не разобрался. Нагло написал AFMAP = 1 << 0 | 1 << 7; // my comments
и забил на весь этот стмовский бред. Совесть не мучает ни разу.
Go to the top of the page
 
+Quote Post
sidy
сообщение May 17 2013, 17:21
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 280
Регистрация: 2-11-08
Пользователь №: 41 333



Разобрался в чем было дело. Когда я ставил точку останова во время работы, отладчик на какоето время (всегда произвольное) останавливал выполнение программы, потом продолжал и только после выполнение программы останавливалось окончательно. Разобрался с этим выводя данные с АЦП тут же в ЦАП.

Задам еще один вопрос в данной теме. Мне с приходом определенного уровня сигнала с АЦП необходимо вывести 5 импульсов. Как это лучше сделать используя таймер и регистры захвата сравнения

Сообщение отредактировал sidy - May 17 2013, 17:28
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 17 2013, 18:16
Сообщение #20


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (sidy @ May 17 2013, 20:21) *
необходимо вывести 5 импульсов. Как это лучше сделать используя таймер и регистры захвата сравнения
Вот посмотрите, как я планировал решать подобную задачу. К сожалению, код для того проекта писал впоследствии не я и другой программист пошел другим путем, поэтому проверить идею не довелось.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
haker_fox
сообщение May 18 2013, 05:04
Сообщение #21


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (sidy @ May 18 2013, 02:21) *
Разобрался с этим выводя данные с АЦП тут же в ЦАП.

Сорри за банальный совет, но почему бы не отлаживаться в консоли?
QUOTE (sidy @ May 18 2013, 02:21) *
Задам еще один вопрос в данной теме. Мне с приходом определенного уровня сигнала с АЦП необходимо вывести 5 импульсов. Как это лучше сделать используя таймер и регистры захвата сравнения

Записать в регистр сравнения число 5, настроить прерывание по сравнению, в котором выключать таймер. В основной программе (или в задаче ОС, если используете) мониторить определенный уровень. Как только уровень пришёл, запускаете таймер.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
sidy
сообщение May 18 2013, 13:35
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 280
Регистрация: 2-11-08
Пользователь №: 41 333



Цитата(haker_fox @ May 18 2013, 09:04) *
Записать в регистр сравнения число 5

Это в регистр TIMx->CCR1? Но этот регистр, как я понимаю сформирует скважность, но не число импульсов?
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 13:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01417 секунд с 7
ELECTRONIX ©2004-2016