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

 
 
 
Reply to this topicStart new topic
> аппаратный старт АЦП от таймера - не заводится, Кто-нибудь скажите, что я делаю не так?
Huston007
сообщение Aug 18 2011, 13:17
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 18-08-11
Пользователь №: 66 780



Пытаюсь сделать старт АЦП от внешнего события - TIM3_CC1. Событие происходит, соответствующее прерывание вызывается, но АЦП не стартует. Можно конечно софтварно стартовать АЦП в прерывании, но хочется обойтись без этого - скорости большие, даже самые незначительные замедления ни к чему.

АЦП инициализирую так:

CODE
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising ;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T3_CC1;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfConversion = 1;
ADC_Init(ADC2, &ADC_InitStructure);



Таймер так:
CODE
TIM_TimeBaseStructure.TIM_Period = 50000; //период будет изменяться
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV2;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);



А вообще вся эта возня для того, чтобы выполнять преобразования АЦП с частотой в N раз больше, чем внешний тактовый сигнал. Т.Е. другой таймер измеряет период внешнего сигнала и выставляет период этого TIM3 в N раз меньше.
Go to the top of the page
 
+Quote Post
Huston007
сообщение Aug 19 2011, 04:48
Сообщение #2





Группа: Новичок
Сообщений: 6
Регистрация: 18-08-11
Пользователь №: 66 780



Разобрался - надо было output capture запустить
CODE
/* Output Compare Toggle Mode configuration: Channel1 */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
TIM_OC1Init(TIM3, &TIM_OCInitStructure);

TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Disable);


Сообщение отредактировал IgorKossak - Aug 19 2011, 06:44
Причина редактирования: Бездумное самоцитирование
Go to the top of the page
 
+Quote Post

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

 


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


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