Constantin24 (01.08.2013 10:24, просмотров: 5787) koyodza
Никак не могу понять почему TIM3 не работает на шим. вроде все делаю по аналогии с TIM2. Может кто найдет в коде настройки ошибку... // Тактирование канала С
  RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
  RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
  
	//Настройка вывода 6
	//Очистка регистра в соответсвующих битах
	GPIOC->CRL &= ~(GPIO_CRL_MODE6 | GPIO_CRL_CNF6);
  //Настройка вывода 6 на выход,2МГц(не влияет),push-pull
  GPIOC->CRL |= (GPIO_CRL_MODE6_1 | GPIO_CRL_CNF6_1);
	
	//Настройка вывода 7
	//Очистка регистра в соответсвующих битах
	//GPIOC->CRL &= ~(GPIO_CRL_MODE7 | GPIO_CRL_CNF7);
  //Настройка вывода 7 на выход,2МГц(не влияет),push-pull
  //GPIOC->CRL |= (GPIO_CRL_MODE7_1 | GPIO_CRL_CNF7_1);
  
	//Разрешить таймеру использовать вывод для ШИМ TIM3_CH1 и TIM3_CH2
	TIM3->CCER |= TIM_CCER_CC1E ;
	//TIM3->CCER |= TIM_CCER_CC2E;
	
	//настройка ШИМ
	
	//ПРОВЕРИТЬ!!!
	TIM3->CCMR1 &= ~(TIM_CCMR1_OC1M);
	//TIM3->CCMR1 &= ~(TIM_CCMR1_OC2M); //очистка битов OC2M и OC1M 
	TIM3->CCMR1|=(TIM_CCMR1_OC1M_0 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2); //прямой	ШИМ
	//TIM3->CCMR1|=(TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2); //прямой	ШИМ
	
	//настраиваем предделитель таймера
	TIM3->PSC = 72-1; //Внутреняя частота 72МГц
		//потолок таймера
	TIM3->ARR = 1000;// 
	//В результате задан ШИМ с периодом 1 мс
	//включить отсчсет времени 
		//Задаем определенное число для ШИМ
	TIM3->CCR1=160; // заполнение ШИМ=160мкс - минимум, начальная установка
	//TIM3->CCR2=660; // заполнение ШИМ=160мкс - минимум, начальная установка
	TIM3->CR1 |= TIM_CR1_ARPE;
	TIM3->CR1 |= TIM_CR1_CEN;