Advertisement
ioannk

Timer 2 channel 4 init

Jun 2nd, 2021 (edited)
997
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.77 KB | None | 0 0
  1. RCC->CFGR &= (RCC_CFGR_SW_1 | RCC_CFGR_SW_0); //Enable internal clock
  2. RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; //Enable tim3 clock
  3. RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
  4.    
  5. GPIOA->CRL  |= GPIO_CRL_MODE3_1 | GPIO_CRL_MODE3_0; // 11: Output mode, max speed 50 MHz.
  6. GPIOA->CRL  |= GPIO_CRL_CNF3_1 | GPIO_CRL_CNF3_0;  // 11: Alternate function output Open-drain
  7.    
  8. TIM2->CCMR2 |= (TIM_CCMR2_OC4M_2 | TIM_CCMR2_OC4M_1 | TIM_CCMR2_OC4M_0); // PWM mode 2 - In upcounting, channel 1 is inactive
  9. TIM2->CCER  |= TIM_CCER_CC4E; // Capture/Compare 1 output to pin enable
  10. TIM2->PSC    = 0xFFFF; // Prescaler value
  11. TIM2->ARR    = 0x200; // ARR is the value to be loaded in the actual auto-reload register.
  12. TIM2->CCR4   = 0x40; // Capture/Compare 1 value
  13. TIM2->CR1   |= TIM_CR1_CEN; // Counter enable
  14.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement