21.10.2013, 23:34
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Измерение длительности импульса STM32
А чем помочь? Нужно настроить DMA из переферии в память? Есть куча примеров, которые отлично гуглятся. Запуск DMA происходит по EVENT по захвату значения таймера. Адрес в памяти надо инкременировать, чтобы собрать массив. Сложность только правильно указать абсолютный адрес начала массива, чтобы DMA знал, куда складывать. Сами не разберетесь, поможем. Но сначала надо самому помучиться.
|
|
|
|
21.10.2013, 23:35
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
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.
|
|
|
|
21.10.2013, 23:36
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Измерение длительности импульса STM32
ВЫрисовывается программа работающая с ультрозвуковым датчиком.
Есть сомнения в правильности выбора канала ДМА. По даташиту вроде для канала 1 таймера, у меня же канал 2 похоже.
|
|
|
|
22.10.2013, 00:27
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Измерение длительности импульса STM32
Получилось с ДМА, только пришлось всё переделывать под канал 1, т. к. для ДМА нет возможности использовать канал 2 таймера.
|
|
|
|
22.10.2013, 00:34
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Измерение длительности импульса STM32
Гулять так гулять. Есть ли возможность определить, что получен положительный фронт, а отрицательный нет за один проход таймера? То есть я могу мерить расстояние на определённой частоте от 2 до 50 см, всё что выше 50 это переполнение таймера и ошибочный результат. Т.е. чтобы измерить до 4 метров как заявлено в спецификации на датчик мне нужно понижать чатоту тактирования таймера... бр... мозг кипит.... пора спать
|
|
|
|
22.10.2013, 07:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Измерение длительности импульса STM32
Там же есть 32-битный таймер, и можно программно соединять таймеры в цепочку
|
|
|
|
22.10.2013, 10:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Измерение длительности импульса STM32
Сообщение от anton_1000
|
Получилось с ДМА, только пришлось всё переделывать под канал 1, т. к. для ДМА нет возможности использовать канал 2 таймера.
|
А так ли необходимо использование DMA? Каков ожидаемый размер массива накапливаемых данных перед началом его обработки? Может, есть смысл ограничиться обработчиком прерывания капчура дьюти? Ведь можно аж целый модуль не включать?
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
22.10.2013, 10:48
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Измерение длительности импульса STM32
С ДМА это круто.
|
|
|
|
22.10.2013, 10:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Измерение длительности импульса STM32
Сообщение от anton_1000
|
С ДМА это круто.
|
Это главная цель?!
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:38.
|
|