stm32f4 pwm + LED

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
TmYAG
Встал на лапы
Сообщения: 89
Зарегистрирован: Пн окт 14, 2013 21:39:47

stm32f4 pwm + LED

Сообщение TmYAG »

Здравствуйте! Играюсь с платкой stm32f4 discovery
Начал изучать таймеры. С базовыми таймерами я разорался.
Решил изучить таймеры общего назначения. И решил начать с ШИМ.
Проект простой- плавное гашение/зажигание светодиодов.
Но есть проблемка, из 4 led один не загорается, хотя в других проекта работает норм.
Можете глянуть мой проект и сказать, где косяк.
P.S. За задержки в виде циклов не пинайте)))

Код: Выделить всё

#include "stm32f4xx.h"                  // Device header

void delay(void) {
   volatile uint32_t i;
   for (i=1; i != 0xF000; i++);
}

int main(){
   RCC->APB1ENR |= RCC_APB1ENR_TIM4EN;
   RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN;
   
   GPIOD->MODER = GPIO_MODER_MODER12_1 | GPIO_MODER_MODER13_1 | GPIO_MODER_MODER14_1 | GPIO_MODER_MODER15_1;
   GPIOD->AFR[1] = 0x22220000;
   
   
   TIM4->CCER |= (TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E | TIM_CCER_CC4E);
   TIM4->CCMR1|=(TIM_CCMR1_OC2M_0| TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2);
   
   TIM4->CCMR2|=(TIM_CCMR2_OC3M_0 | TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2 | TIM_CCMR2_OC4M_0 | TIM_CCMR2_OC4M_1 | TIM_CCMR2_OC4M_2);

   TIM4->CR1 |= TIM_CR1_CEN;

while(1)

{
      volatile int i = 0;
   volatile int j = 0;

         for(i = 0; i <= 65353 ; i++){
         
         TIM4->CCR1 = i;
         TIM4->CCR2 = i;
         TIM4->CCR3 = i;
         TIM4->CCR4 = i;
         for(j = 0 ; j < 1000; j++) __NOP();
      }
      for(i = 65535; i >= 0 ; i--){
         TIM4->CCR1 = i;
         TIM4->CCR2 = i;
         TIM4->CCR3 = i;
         TIM4->CCR4 = i;
         
         for(j = 0 ; j < 1000; j++) __NOP();
      }

}
   

}
Вложения
L4_General_purpose_timers_CMSIS.zip
(693.59 КБ) 133 скачивания
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: stm32f4 pwm + LED

Сообщение HHIMERA »

А где настройки
TIM_CCMR1_OC1M ???
"Я не даю готовых решений, я заставляю думать!"(С)
TmYAG
Встал на лапы
Сообщения: 89
Зарегистрирован: Пн окт 14, 2013 21:39:47

Re: stm32f4 pwm + LED

Сообщение TmYAG »

HHIMERA писал(а):А где настройки
TIM_CCMR1_OC1M ???

Вот спасибо! Чувствовал, что с одним каналом накосячил, а где не углядел! Спасибо!
И еще вопросик: чтобы с мигалки на серву перекинуть код как мне быть?
В идеале хочу сделать чтобы при нажатии на кнопку серва поворачивалась на определенный угол отпускаю кнопку серва останавливается. В сторону чего копать?
Ответить

Вернуться в «ARM»