0
votes

Is it possible to output different pwm signals on all the 4 capture/compare channels of an stm microcontroller, considering that there is only one event output register (AFIO->EVCR) which can only be configured for one port. How i use the different channels of a timer simultaneously ?

1
Are you asking if a multi-channel timer can output on multiple channels? YOur question is either not clear or it contains its own answer.too honest for this site

1 Answers

1
votes

The EVCR register is for EVENTOUT, to generate a pulse on an SEV instruction. That is feature of the cortex, not a timer.

To utilize timer PWM generation, use the TIMx CHx(N) channels.

Example of timer configuration:

  TIMx->CCMR1 = TIM_CCMR1_OC1PE           // Preload CCR (buffered)
              | (7<<TIM_CCMR1_OC1M_Pos);  // PWM mode 2, active while TIMx_CNT < TIMx_CCR1
  TIMx->CCER = TIM_CCER_CC1E;             // Enable output ch1
  TIMx->PSC = 3-1;                        // Prescaler (72 Mhz)
  TIMx->ARR = 48000-1;                    // Reload must be >0 to operate timer in INC mode
  TIMx->CNT = TIMx->ARR;                  // Immediate trigger
  TIMx->CCR1 = TIMx->ARR/2;               // 50%