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

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

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

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

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

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


 
Опции темы
Непрочитано 02.10.2012, 13:54  
sosedi
Частый гость
 
Регистрация: 31.07.2012
Сообщений: 45
Сказал спасибо: 28
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
sosedi на пути к лучшему
Радость корректировка буфера для DMA

Всем привет)Поскажите, как можно изменить значения массива, который указан в качестве передаваемого в DMA ЦАПу?
т.е имеется массив значений для генерации синуса:
Код:
const uint16_t sin_50hz[] =
{ 2048, 2112, 2177, 2241, 2305, 2368, 2432, 2495, 2557, 2619, 2681, 2742, 2802,
        2861, 2920, 2978, 3035, 3091, 3145, 3199, 3252, 3303, 3353, 3402, 3450,
        3496, 3541, 3584, 3626, 3666, 3705, 3742, 3777, 3811, 3843, 3873, 3901,
        3928, 3952, 3975, 3996, 4015, 4032, 4047, 4060, 4071, 4080, 4087, 4092,
        4095, 4095, 4095, 4092, 4087, 4080, 4071, 4060, 4047, 4032, 4015, 3996,
        3975, 3952, 3928, 3901, 3873, 3843, 3811, 3777, 3742, 3705, 3666, 3626,
        3584, 3541, 3496, 3450, 3402, 3353, 3303, 3252, 3199, 3145, 3091, 3035,
        2978, 2920, 2861, 2802, 2742, 2681, 2619, 2557, 2495, 2432, 2368, 2305,
        2241, 2177, 2112, 2048, 1984, 1919, 1855, 1791, 1728, 1664, 1601, 1539,
        1477, 1415, 1354, 1294, 1235, 1176, 1118, 1061, 1005, 951, 897, 844,
        793, 743, 694, 646, 600, 555, 512, 470, 430, 391, 354, 319, 285, 253,
        223, 195, 168, 144, 121, 100, 81, 64, 49, 36, 25, 16, 9, 4, 1, 0, 1, 4,
        9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 168, 195, 223, 253, 285, 319,
        354, 391, 430, 470, 512, 555, 600, 646, 694, 743, 793, 844, 897, 951,
        1005, 1061, 1118, 1176, 1235, 1294, 1354, 1415, 1477, 1539, 1601, 1664,
        1728, 1791, 1855, 1919, 1984 };
с помощью DMA я передаю ЦАПу все значения по прерыванию таймера!!!!!
Код:
//***********DMA1***************
	RCC-›AHB1ENR	|= RCC_AHB1ENR_DMA1EN;
	DMA1_Stream5-›CR|= DMA_SxCR_CHSEL;			// 111: channel 7 selected
	DMA1_Stream5-›PAR= (uint32_t)&DAC-›DHR12R1; // указатель на переферийное устройство
	DMA1_Stream5-›M0AR=(uint32_t)&sin_50hz[0];//адрес буфера
	DMA1_Stream5-›NDTR=200;						// кол-во передаваемых данных
	DMA1_Stream5-›CR|= DMA_SxCR_MINC;			// инкремент указателя буфера
	DMA1_Stream5-›CR|= DMA_SxCR_MSIZE_0;		// размер элемента в памяти 16 бит
	DMA1_Stream5-›CR|= DMA_SxCR_PSIZE_0;		// размер элемента в переферии 16 бит
	DMA1_Stream5-›CR|= DMA_SxCR_CIRC;			// цикличная передача данных
	DMA1_Stream5-›CR|= DMA_SxCR_DIR_0;			// 01: Memory-to-peripheral
	DMA1_Stream5-›CR|= DMA_SxCR_PL;				// 11: Very high
	DMA1_Stream5-›CR|= DMA_SxCR_EN;				// включение ПДП
так вот,повторюсь) как в процессе передачи данных добавить делитель!!!!!!!!!!! к примеру по нажатию кнопки урезать(увеличить) размах!!!!!!т.е сделать что-то типа этого: DMA1_Stream5-›M0AR=((uint32_t)&sin_50hz[0])/2-делить каждый элемент буферана опр знач!
Реклама:
sosedi вне форума  
Непрочитано 02.10.2012, 14:56  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: корректировка буфера для DMA

При нажатии на кнопку заполнить другой массив в ОЗУ значениями нужной амплитуды и передать в DMA начальный адрес этого массива.

Последний раз редактировалось Yurkin2007; 02.10.2012 в 14:58.
Yurkin2007 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Микросхема выходного буфера для наушников Falconist Аудиотехника 20 05.08.2012 07:51
DMA в ATxmega vav618 Микроконтроллеры, АЦП, память и т.д 1 03.04.2010 10:57
МСС18: корректировка файла линкера - выделение памяти urry Микроконтроллеры, АЦП, память и т.д 0 08.12.2009 10:32
Помогите сделать НУБУ усилок для буфера...! Savage87 Аудиотехника 13 02.11.2006 19:09
Радио, корректировка точного времени Rapitos Аудиотехника 8 25.10.2006 10:13


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


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