32 定时器总结1
plaintext指令周期 ≥ 机器周期 ≥ 时钟周期时钟周期是基础,决定了 CPU 的最小时间粒度;机器周期是 CPU 完成单次基本操作的时间,由多个时钟周期组成;指令周期是执行一条指令的总耗时,由多个机器周期组成。举例:若某 CPU 的时钟周期为 1ns,1 个机器周期 = 4 个时钟周期(4ns),执行一条加法指令需要 3 个机器周期,则这条指令的指令周期 = 3×4ns=12ns。
定时器一共有8个
(1)定时器6-7基本定时器 (2)定时器2-5通用定时器 (3)定时器1、定时器8是高级定时器

问题一:不同的定时器对应哪个引脚,那个通道?
根据电路图设计以及硬件电路实际情况决定对应哪个引脚,一般是通道1,
有的需求例如需要计算占空比,此类需求设计到需要上升沿时间以及下降沿时间,同一个通道无法一直进行改变,所以会用到两个通道。需要保证两个通道的来源是一致的。


(1)TIM5 :通道1 PA1引脚
两个通道采用1个寄存器配置,所以4个通道采用2个寄存器
配置通道的工作模式为输出:00
TIM5->CCMR1 &= ~TIM_CCMR1_CC2S;
(2)TIM3:通道2 PB0引脚
两个通道采用1个寄存器配置,所以4个通道采用2个寄存器
配置通道的工作模式为输出:00
TIM3->CCMR2 &= ~TIM_CCMR2_CC3S;
(3)TIM4:通道1 2 PB6引脚 需要计算占空比要用到上升沿和下降沿
// 工作模式
TIM4->CCMR1 &= ~TIM_CCMR1_CC1S_1; // 选择工作模式:输入(01)
TIM4->CCMR1 |= TIM_CCMR1_CC1S_0; // 选择工作模式:输入(01)
// 通道2的信号来源应该为通道1的信号
TIM4->CCMR1 |= TIM_CCMR1_CC2S_1; // 选择工作模式:输入(10)
TIM4->CCMR1 &= ~TIM_CCMR1_CC2S_0; // 选择工作模式:输入(10)
(4)TIM1 :通道1 PA8引脚
// 工作模式 :输出(00)
TIM1->CCMR1 &= ~TIM_CCMR1_CC1S;
问题二:机器周期、时钟周期、指令周期有什么关系?
机器周期、时钟周期、指令周期是计算机时序中的核心概念,三者层层递进、紧密关联,共同决定了 CPU 执行指令的效率和速度。
1. 时钟周期(Clock Cycle)
- 定义:又称节拍周期或振荡周期,是 CPU 的最基本时间单位,等于时钟频率的倒数(例如时钟频率为 1GHz 时,时钟周期为 1ns)。
- 本质:由 CPU 的晶振产生,是 CPU 内部操作(如门电路翻转、数据传输)的最小时间刻度,相当于 CPU 的 “心跳”。
2. 机器周期(Machine Cycle)
- 定义:又称 CPU 周期,是 CPU 完成一个基本操作(如取指、存储器读 / 写、ALU 运算)所需的时间。
- 与时钟周期的关系:一个机器周期通常包含若干个时钟周期(具体数量由 CPU 架构决定,例如经典 8051 单片机的 1 个机器周期 = 12 个时钟周期,ARM 架构可能为 1 个时钟周期)。
- 作用:是连接 “最小时间单位” 和 “基本操作” 的桥梁,例如 CPU 读取内存中一个字节的数据,可能需要 2 个时钟周期,这 2 个时钟周期就构成了 1 个机器周期。
3. 指令周期(Instruction Cycle)
- 定义:CPU 执行一条完整指令所需的总时间,是时序中的最大单位。
- 与机器周期的关系:一条指令的执行过程通常分解为多个机器周期(如取指周期、译码周期、执行周期、访存周期等),因此一个指令周期包含若干个机器周期。
- 差异:不同指令的指令周期长度可能不同,例如简单的 “MOV 寄存器指令” 可能只需 2 个机器周期,而复杂的 “乘法指令” 可能需要 5 个以上机器周期。
三者的层级关系总结
plaintext
指令周期 ≥ 机器周期 ≥ 时钟周期
- 时钟周期是基础,决定了 CPU 的最小时间粒度;
- 机器周期是 CPU 完成单次基本操作的时间,由多个时钟周期组成;
- 指令周期是执行一条指令的总耗时,由多个机器周期组成。
举例:若某 CPU 的时钟周期为 1ns,1 个机器周期 = 4 个时钟周期(4ns),执行一条加法指令需要 3 个机器周期,则这条指令的指令周期 = 3×4ns=12ns。
问题三:HZ PSC ADD us ms s 时钟源,发送信号有什么关系?
公式 F = 1/T 、 输入信号频率/输出信号频率 = PSC*ADD 、 1s = 1000ms = 1000000us
频率2HZ = 1s传输2个PWM信号 =1ms传输2000个信号
频率1HZ =1s1个信号闪烁一次 =1s传输1个PWM信号=1ms传输1000个信号 => psc*pwm = 7200 * 10000(1s1个PWM信号里面有10000个信号(高低电平)和比较寄存器比10000次)



问题四:常见的寄存器单词和首字母缩写

更多推荐


所有评论(0)