单片机嵌入式计算器
主要功能:完成PWM占空比计算,T溢出时间(延时);
[!NOTE]
两个程序EXE;
[!CAUTION]
百度网盘链接:链接:https://pan.baidu.com/s/1VJ0G7W5AEQw8_MiagM7g8A?pwd=g88f
提取码:g88f
截图展示
前提条件:
PSC(预分频系数),ARR(自动重装器系数),CCR(捕获/比较器系数)CLK=72MHZ
占空比:
D u t y = C C R / ( A R R + 1 ) Duty=CCR/(ARR+1) Duty=CCR/(ARR+1)
延时时间:
延时时间 = ( A R R + 1 ) ( P S C + 1 ) / C L K 延时时间=(ARR+1)(PSC+1)/CLK 延时时间=(ARR+1)(PSC+1)/CLK
PWM频率:
P W M 频率=更新频率 = F r e q = 72 M / ( P S C + 1 ) / ( A R R + 1 ) PWM频率=更新频率=Freq=72M/(PSC+1)/(ARR+1) PWM频率=更新频率=Freq=72M/(PSC+1)/(ARR+1)
下面给出例子展示:
例题:
- 使用定时器 TIM1 在引脚 PA8 上输出频率为 500Hz,占空比为 20%的矩形脉冲信号,已知预分频系数为72(TIMx_CLK=72MHz)
(1) 求出自动重装载寄存器和输出比较寄存器的初始值是多少?
解答
ARR(自动重装器系数)
预分频系数(PSC):72
TIMx_CLK=72MHz
目标频率:500HZ
定时器周期:T=1/500Hz=2ms
定时器时钟频率:TIM1_CLK=72MHz/72=1MHZ
ARR=T*TIM1_CLK-1=2ms×MHZ-1=2000-1
CCR(捕获/比较器系数)
占空比:20%
CCR=20%ARR=400*-1**
- 自动重装载寄存器(ARR)的初始值为:1999(十六进制为0x7CF)
- 输出比较寄存器(CCR)的初始值为:399(十六进制为0x18F)
验证
- 使用定时器 TIM4,预分频系数为 1000,自动重装载寄存器的值为 72,设置时钟模式为向上计数模式(TIMx_CLK=72MHz)
(1) 求出定时器 4 的延时时间 T。
解答
- TIMx_CLK(定时器时钟频率):72MHz
- 预分频系数(PSC):1000
- 自动重装载寄存器(ARR)的值:72
延时时间 = ( A R R + 1 ) ( P S C + 1 ) / T I M x C L K 延时时间=(ARR+1)(PSC+1)/TIMxCLK 延时时间=(ARR+1)(PSC+1)/TIMxCLK
先计算TIMx_CLK经过预分频后的频率
TIM_CLK=72MHZ/1000=72KHZ
带入上面的公式
T=(72+1)(1000+1)/72KHZ=1.014ms
验证