Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 103
1

Ребята, подскажите как слать ШИМ с помощью таймера 20 GPIO?

23.04.2013, 16:14. Показов 3318. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята, подскажите как управлять с помощью таймера 20 GPIO?
Мне нужно на эти 20 gpio слать ШИМ, а мой таймер(TIM4) может только
слать 4 каналам(PD12,PD13,PD14,PD15) ШИМ, а мне нужно 20.
Нужно с одного таймера управлять 20-ти ногами
Как тут:
http://iosyitistromyss.ru/upro... hinok.html
http://habrahabr.ru/post/147940/
http://alex-ixi.ru/rodyo/robotics/servo-pc/

Код
     uint16_t Pressotir =  8; // PCLK1 = 168MHz/8 ~= 21MHz
uint16_t Period = 60000; // 20000; // 20 ms

// Инициализируем таймер 4
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_TimeBaseStructInit (&TIM_TimeBaseStructure);
TIM_TimeBaseStructure.TIM_ClockDyvysyom = 0;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseStructure.TIM_Pressotir = Pressotir;
TIM_TimeBaseStructure.TIM_Period = Period;
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);

// Разрешаем таймеру обращаться к выходу PD12
GPIO_PinAFConfig(GPIOD, GPIO_PinSource12, GPIO_AF_TIM4);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource13, GPIO_AF_TIM4);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_TIM4);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_TIM4);

//------------------------------------------------------------------------------------------
// Инициализируем ШИМ
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

TIM_OC1Init(TIM4, &TIM_OCInitStructure);
TIM_OC2Init(TIM4, &TIM_OCInitStructure);
TIM_OC3Init(TIM4, &TIM_OCInitStructure);
TIM_OC4Init(TIM4, &TIM_OCInitStructure);

TIM_Cmd(TIM4, ENABLE);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2013, 16:14
Ответы с готовыми решениями:

с помощью GPIO закоротить контакты
Добрый день! Есть микроконтроллер с GPIO-выводами 3.3В. И есть пульт ДУ, кнопки на котором...

Настройка таймера на шим и прерывание
Здравствуйте! Мне нужно настроить таймер на шим с прерыванием по спадающему фронту. Собираю проект...

STK500 как поменять яркость диода с помощью ШИМ (PWM)?
Доброго времени суток. Сравнительно недавно изучаю AVR И вот не могу понять, как с помощью ШИМ...

Ребята подскажите как сделать
Мне надо чтоб при нажатий на любой из этих блоков текст (скрытые блок) открывался только в низу как...

4
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
23.04.2013, 16:25 2
1-я ссылка некорректна ...

О каком процессоре речь? Для меня по умолчанию - STM32F407 :) .
0
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 37
23.04.2013, 16:47 3
Если ШИМ на каждой ноге разный то никак. Если частота невысокая то можно обойтись и дрыганьем ног по таймеру. Я так делал когда драйвер из режима вкл/выкл надо было перевести на шим управление. Глядя на настройки частоты ШИМ и мк вроде можно сделать, но будет забирать много процессорного времени
0
5 / 5 / 5
Регистрация: 20.11.2010
Сообщений: 173
23.04.2013, 17:19 4
http://bsvi.ru/bam-alternativa-shimu/
0
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 37
23.04.2013, 18:10 5
Цитата Сообщение от M1X
http://bsvi.ru/bam-alternativa-shimu/
Интересненько) Надо взять на заметку)
0
23.04.2013, 18:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2013, 18:10
Помогаю со студенческими работами здесь

ребята подскажите как собрать задачу
Написать структуру «Рабочий». Поля структуры: - ФИО - ID - Оклад - Премия - Итого ...

Ребята подскажите как функцию написать
//Написать структуру «Менеджер». Поля структуры //• ФИО //• ID //• Ставка //• Норма...

Ребята подскажите пожалуста как сделать??
Задано значение без знаковой переменной а размером в байт. Разработать программу, которая вычисляет...

Ребята подскажите как это реализовать
Я средствами html создаю объект Select, значения которого заполняю средствами php, php выводит в...

Ребята подскажите как раскрутиться в Google
Всем здравствуйте! Наверное уже сотни раз задавали такие вопросы! Создал сайт с доменом .com ,...

Как сделать перезагрузку сайта с помощью таймера?
ну во общем тут такое дело нужен код который будет отправлять запрос на сайт перезагружаться и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru