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

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

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

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

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

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


 
Опции темы
Непрочитано 21.10.2013, 23:34  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Измерение длительности импульса STM32

А чем помочь? Нужно настроить DMA из переферии в память? Есть куча примеров, которые отлично гуглятся. Запуск DMA происходит по EVENT по захвату значения таймера. Адрес в памяти надо инкременировать, чтобы собрать массив. Сложность только правильно указать абсолютный адрес начала массива, чтобы DMA знал, куда складывать. Сами не разберетесь, поможем. Но сначала надо самому помучиться.
Реклама:
Easyrider83 вне форума  
Непрочитано 21.10.2013, 23:35  
anton_1000
Прописка
 
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
anton_1000 на пути к лучшему
По умолчанию Re: Измерение длительности импульса STM32

Пітаюсь настроить ДМА для чтения TIM3_CCR2
Код:
void DMA_Configuration(void)
{
  DMA_InitTypeDef DMA_InitStructure;

  /* DMA1 Channel6 Config */
  
  DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&TIM3-›CCR2);//(uint32_t)TIM3_CCR2_Address;
  DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&SRC_Buffer[0];
  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;//DMA_DIR_PeripheralDST;
  DMA_InitStructure.DMA_BufferSize = 3;
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
  DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
  DMA_InitStructure.DMA_Priority = DMA_Priority_High;
  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;

  DMA_Init(DMA1_Channel6, &DMA_InitStructure);

  /* DMA1 Channel6 enable */
  DMA_Cmd(DMA1_Channel6, ENABLE);
}
и дополнения
Код:
 /* Enable the TIMER CAPTURE DMA requests */
  TIM_SelectCCDMA(TIM3, ENABLE);
  TIM_DMACmd(TIM3, TIM_DMA_CC2, ENABLE);
но не фурычит

Последний раз редактировалось anton_1000; 21.10.2013 в 23:55.
anton_1000 вне форума  
Непрочитано 21.10.2013, 23:36  
anton_1000
Прописка
 
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
anton_1000 на пути к лучшему
По умолчанию Re: Измерение длительности импульса STM32

ВЫрисовывается программа работающая с ультрозвуковым датчиком.
Есть сомнения в правильности выбора канала ДМА. По даташиту вроде для канала 1 таймера, у меня же канал 2 похоже.
anton_1000 вне форума  
Непрочитано 22.10.2013, 00:27  
anton_1000
Прописка
 
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
anton_1000 на пути к лучшему
По умолчанию Re: Измерение длительности импульса STM32

Получилось с ДМА, только пришлось всё переделывать под канал 1, т. к. для ДМА нет возможности использовать канал 2 таймера.
anton_1000 вне форума  
Непрочитано 22.10.2013, 00:34  
anton_1000
Прописка
 
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
anton_1000 на пути к лучшему
По умолчанию Re: Измерение длительности импульса STM32

Гулять так гулять. Есть ли возможность определить, что получен положительный фронт, а отрицательный нет за один проход таймера? То есть я могу мерить расстояние на определённой частоте от 2 до 50 см, всё что выше 50 это переполнение таймера и ошибочный результат. Т.е. чтобы измерить до 4 метров как заявлено в спецификации на датчик мне нужно понижать чатоту тактирования таймера... бр... мозг кипит.... пора спать
anton_1000 вне форума  
Непрочитано 22.10.2013, 07:41  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Измерение длительности импульса STM32

Там же есть 32-битный таймер, и можно программно соединять таймеры в цепочку
niXto вне форума  
Непрочитано 22.10.2013, 10:25  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Измерение длительности импульса STM32

Сообщение от anton_1000 Посмотреть сообщение
Получилось с ДМА, только пришлось всё переделывать под канал 1, т. к. для ДМА нет возможности использовать канал 2 таймера.
А так ли необходимо использование DMA? Каков ожидаемый размер массива накапливаемых данных перед началом его обработки? Может, есть смысл ограничиться обработчиком прерывания капчура дьюти? Ведь можно аж целый модуль не включать?
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 22.10.2013, 10:48  
anton_1000
Прописка
 
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
anton_1000 на пути к лучшему
По умолчанию Re: Измерение длительности импульса STM32

С ДМА это круто.
anton_1000 вне форума  
Непрочитано 22.10.2013, 10:51  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Измерение длительности импульса STM32

Сообщение от anton_1000 Посмотреть сообщение
С ДМА это круто.
Это главная цель?!
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Измерение длины импульса AGAT0365 Микроконтроллеры, АЦП, память и т.д 11 15.05.2013 21:09
STM32 измеренние длительности импульса anton_1000 Песочница (вопросы новичков) 22 26.08.2012 22:54
Ограничитель длительности импульса Pajatel Микроконтроллеры, АЦП, память и т.д 161 05.04.2012 00:35
Измерение длительности импульса fawkes Микроконтроллеры, АЦП, память и т.д 16 09.11.2008 16:41
[Решено] способы определения длительности импульса waterfox Измерительное оборудование 1 14.06.2005 23:57


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


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