Страница 1 из 1

stm32f4 pwm + LED

Добавлено: Пн фев 29, 2016 15:07:41
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();
		}

}
	

}

Re: stm32f4 pwm + LED

Добавлено: Пн фев 29, 2016 15:15:40
HHIMERA
А где настройки
TIM_CCMR1_OC1M ???

Re: stm32f4 pwm + LED

Добавлено: Пн фев 29, 2016 15:25:55
TmYAG
HHIMERA писал(а):А где настройки
TIM_CCMR1_OC1M ???
Вот спасибо! Чувствовал, что с одним каналом накосячил, а где не углядел! Спасибо!
И еще вопросик: чтобы с мигалки на серву перекинуть код как мне быть?
В идеале хочу сделать чтобы при нажатии на кнопку серва поворачивалась на определенный угол отпускаю кнопку серва останавливается. В сторону чего копать?