Не могу включить ШИМ на указанном камне. Использую пин PA5, TIM2. Дайте пожалуйста подсказку! На этим пине висит светодиод, хочу плавно повключать его)))
YuriSh, альтернативная функция пина неправильно задана. GPIO_MODER_MODER5_1 это же двойка. Пользуйтесь макросами из CMSIS. Вот так меньше вероятность ошибиться _VAL2FLD(GPIO_AFRL_AFSEL5,1);
Оператором &= неправильно пользуетесь. Чтобы сбросить бит в регистре надо вот так делать
VladislavS, я же правильно понимаю, чтобы настроить пин на режим альтернативной функции мне необходимо первый бит перевести в единицу? разве оно не так делается?
Код:
GPIOA->MODER |= GPIO_MODER_MODER5_1;
требуется альтернативная функция 1 ,
следовательно, нулевой бит в единицу:
Код:
GPIOA->AFR[0] |= GPIO_AFRL_AFRL5_0
настроить пин на пуш-пул, сделал, как вы сказали:
Код:
GPIOA->OTYPER &= ~GPIO_OTYPER_OT5;
Подскажите, пожалуйста, я правильно понял, как выставлять биты в регистрах?
Добавлено after 16 minutes 20 seconds: В общем разобрался, всем огромное спасибо. Итоговый код: Спойлер
YuriSh, рекомендую поставить бит TIM_CCMR1_OC1PE. Вы же будете рулить скважностью на ходу. И вы злоупотребляете оператором |=. Посмотрите мой код инициализации таймера.
Где 5 - номер пина, 1 - значение AF. Сбросить все 4 бита до присваивания нового значения нужно обязательно, если нет уверенности, что эта строчка будет вызываться сразу после инициализации МК (а не где-нибудь, когда в других функциях уже что-то будет туда позаписано или, тем паче, если меняется на лету альтернативная функция). Можно какой-нибудь макрос забахать, вроде:
Код:
#define AFRL(n, v) (v << (n*4)) #define AFRH(n, v) (v << ((n-8)*4))
У VladislavS все наворочено на шаблонах и констэкспрах С++, а нам, убогим сишникам, приходится макросами выкручиваться…
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения