Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: управление TIM3 по DMA (STM32F101)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Tanker
Здравствуйте!

Хочу в основном цикле программы вычислять значения для TIM3_CH1, TIM3_CH2, TIM3_CH3 и чтобы DMA переносил вычесленные значения в эти самые TIM3_CHх.
Прочитал апнот 2548 согласно которому TIM3_CH2 обделён каналом DMA, и вообще на каждый TIM3_CHx придётся использовать свой канал DMA , хотя логичней было бы использовать один DMA так как регистры TIM3_CHx расположены последовательно.

Хочу узнать Ваши рекомендации относительно задачи.
msalov
Вам нужно использовать Memory-to-Memory mode. Он не зависит от другихмодулей, а просто копирует область памяти в другую область памяти.
koyodza
Цитата(Tanker @ Dec 7 2009, 13:49) *
Прочитал апнот 2548 согласно которому TIM3_CH2 обделён каналом DMA, и вообще на каждый TIM3_CHx придётся использовать свой канал DMA , хотя логичней было бы использовать один DMA так как регистры TIM3_CHx расположены последовательно.

Так то, что каналы DMA закреплены за периферией, означает не то, что только этот канал DMA работает с этим каналом таймера или уарта, а то, что эта периферия может быть инициатором обмена DMA.
Иными словами, выбираете источник DMA один из каналов своего таймера (или, скорее, TIM3_UP, т.е. DMA CH3), тогда по этому событию будет инициирован обмен. В качестве источника настраиваете память, в качестве приемника - регистры таймера, ну и длину данных устанавливаете соответственно.
В принципе, никто не запрещает вообще обмен инициировать одной периферией, а данные бросать в другую
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.