TIMER.c 811 B

123456789101112131415161718192021222324252627282930
  1. #include <MyProject.h>
  2. /**
  3. @function PWM_Timer_Init
  4. @brief 输入捕获 TIM3实现
  5. @date 2025-12-27
  6. */
  7. void PWM_Timer_Init(void)
  8. {
  9. ClrBit(TIM3_CR1, T3EN);
  10. // 配置端口复用 GP11
  11. SetBit(PH_SEL, T3SEL);
  12. ClrBit(PH_SEL1, T3CT1 | T3CT0);
  13. // 配置定时器时钟 750KHz
  14. SetReg(TIM3_CR0, T3PSC2 | T3PSC1 | T3PSC0, T3PSC2 | T3PSC0);
  15. // 模式配置
  16. ClrBit(TIM3_CR0, T3MOD);
  17. ClrBit(TIM3_CR0, T3OCM | T3OPM);
  18. // 中断配置
  19. SetBit(TIM3_CR0, T3IRE);
  20. ClrBit(TIM3_CR1, T3IR | T3IF | T3IP);
  21. SetBit(TIM3_CR1, T3IPE | T3IFE);
  22. // 计数值配置
  23. TIM3__CNTR = 0;
  24. TIM3__DR = 0;
  25. TIM3__ARR = 0;
  26. // 配置中断优先级
  27. SetReg(IP2, PTIM31 | PTIM30, PTIM30);
  28. SetBit(TIM3_CR1, T3EN);
  29. }