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

 
 
> STM32F4 несколько ШИМ на одном таймере, Не знаю как подступиться к STM32F4-Discovery
peroid
сообщение May 17 2015, 19:08
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 6-05-15
Пользователь №: 86 555



Доброго времени суток всем.

В текущий момент разбираюсь с ШИМ, объектом манипуляций являются две сервы SG90.
Посмотрел на примеры в уроках, и кое-как сваял функцию для управления сервой.

CODE
void Hard_PWM (void){

TIM_TimeBaseInitTypeDef TIM_Time_user;
TIM_OCInitTypeDef Hard_PWM_ini;
GPIO_InitTypeDef GPIO_Init_LED;
TIM_ICInitTypeDef TEST_Dop;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

GPIO_Init_LED.GPIO_Pin = GPIO_Pin_12;
GPIO_Init_LED.GPIO_Mode = GPIO_Mode_AF;
GPIO_Init_LED.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init_LED.GPIO_OType = GPIO_OType_PP;
GPIO_Init_LED.GPIO_PuPd = GPIO_PuPd_NOPULL;

GPIO_PinAFConfig (GPIOD, GPIO_PinSource12,GPIO_AF_TIM4);

GPIO_Init(GPIOD, &GPIO_Init_LED);
Hard_PWM_ini.TIM_OCMode=TIM_OCMode_PWM1;
Hard_PWM_ini.TIM_OutputState=TIM_OutputState_Enable;
Hard_PWM_ini.TIM_Pulse=0; //250-1000
Hard_PWM_ini.TIM_OCPolarity=TIM_OCPolarity_High;

TEST_Dop.TIM_Channel = TIM_Channel_1;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
TIM_Time_user.TIM_Prescaler = 83;
TIM_Time_user.TIM_CounterMode = TIM_CounterMode_Up;
TIM_Time_user.TIM_Period = 19999;
TIM_Time_user.TIM_ClockDivision = TIM_CKD_DIV1;

TIM_TimeBaseInit(TIM4, &TIM_Time_user);
TIM_Cmd(TIM4, ENABLE);

TIM_OC4Init(TIM4, &Hard_PWM_ini);

}


В юзер мануале (UM1472) на странице 30 указано, что выходу PD12 соответствует первый канал таймера 4 (TIM4_CH1), PD13 - второй, PD14 -третий и четвертый для PD15 .

Вопрос в следующем - можно ли использовать одновременно 4 различные функции для разных ножек, но с одним таймером (это будет нога гексапода)? Ну и конечно был бы очень благодарен за подсказку в каком направлении читать и рыть.
Я еще плохо ориентируюсь в чтении мануалов. Оказывается не просто сел и прочитал rolleyes.gif на одно предложение, сразу десять вопросов. Недавно снизошла благодать в виде чтения библиотек и попыток чего-нибудь из них вкрячить в код biggrin.gif.
Вот, попытался добавить TIM_Channel = TIM_Channel_1, чтобы явно указать канал 1, но не получается чего-то... не выходит каменный цветок.

Заранее спасибо за любую помощь.


Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:49
Рейтинг@Mail.ru


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