stm32 ШИМ на 2-х каналах со смещением на 120 градусов

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
dimanlin007
Родился
Сообщения: 5
Зарегистрирован: Чт авг 20, 2015 14:36:18

stm32 ШИМ на 2-х каналах со смещением на 120 градусов

Сообщение dimanlin007 »

Привет парни! Учусь!

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

int main() {
  RCC->APB2ENR |= (RCC_APB2ENR_IOPAEN | RCC_APB2ENR_AFIOEN);
	
	GPIOA->CRL |= GPIO_CRL_MODE0;
  GPIOA->CRL &= ~GPIO_CRL_CNF0;
  GPIOA->CRL |= GPIO_CRL_CNF0_1;
	
  GPIOA->CRL |= GPIO_CRL_MODE1;
  GPIOA->CRL &= ~GPIO_CRL_CNF1;
  GPIOA->CRL |= GPIO_CRL_CNF1_1;

  RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
	
	TIM2->CCMR1 |= (TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2M_1);
	TIM2->CCMR1 |= (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1);
	TIM2->CCER |= TIM_CCER_CC1E;
	TIM2->CCER |= TIM_CCER_CC2E;
	
  TIM2->ARR = 1000 - 1;
  TIM2->CCR2 = 100;
	TIM2->DIER |= TIM_DIER_UIE;
	NVIC_EnableIRQ(TIM2_IRQn);
  TIM2->CR1 |= TIM_CR1_CEN;

  while(1);
}

void TIM2_IRQHandler() 
{
	TIM2->SR&=~TIM_SR_UIF;
}

Получаю шим только на PA1, а хочется ещё на PA0 его иметь.

И я не очень догоняю куда дальше копать, если мне нужна другая частота на PA0. Поскольку
TIM2->ARR = 1000 - 1;
TIM2->CCR2 = 100;
задаются как то глобально а не для конкретного канала... :/
Реклама
dimanlin007
Родился
Сообщения: 5
Зарегистрирован: Чт авг 20, 2015 14:36:18

Re: stm32 ШИМ на 2-х каналах со смещением на 120 градусов

Сообщение dimanlin007 »

Разобрался немного

Шим на первом канале для TIM2 появился после добавления
TIM2->CCR1 = 400;
Реклама
Ответить

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