### 实战msp430TB捕获PWM波的脉冲宽度
#### 知识点一:msp430TB 捕获PWM波形的基本原理
在本篇内容中,作者详细介绍了如何利用msp430微控制器中的定时器B(TB)功能来捕获PWM波形的脉冲宽度。这一过程主要依赖于TBCCRO寄存器来完成对PWM信号边沿的捕获。当TBCCRO捕获到下降沿时,会记录下当前的TBCCRO值,并将触发方式设置为上升沿;而当捕获到上升沿时,同样记录下TBCCRO值,并将触发方式再次设置为下降沿。通过这种方式,可以准确地测量出PWM波形的脉冲宽度。
#### 知识点二:msp430TB的配置与初始化
在实现上述功能之前,需要正确配置和初始化msp430微控制器的相关寄存器。这部分内容包括了对系统时钟的选择、定时器B的配置以及中断的设置等关键步骤。
1. **系统时钟初始化**:
- 首先需要使能外部时钟XT2。
- 然后等待XT2稳定工作。
- 最后选择XT2作为主时钟MCLK和子系统时钟SMCLK的源。
2. **定时器B配置**:
- 清除定时器B控制寄存器中的相关位,以确保初始状态正确。
- 设置CCIS位以指定捕获/比较输入源。
- 设置CM位以指定捕获模式(在这里使用上升沿和下降沿的交替模式)。
- 启用捕获/比较中断。
- 设置预分频系数以调整计数速度。
- 选择SMCLK作为定时器B的时钟源。
- 清除计数器。
- 设置运行模式。
#### 知识点三:PWM脉冲宽度的测量与计算
在配置好定时器B之后,接下来的任务就是进行PWM脉冲宽度的测量。这部分涉及到的关键步骤包括:
1. **捕获下降沿**:
- 当检测到下降沿时,记录当前TBCCRO的值,并将触发方式切换为上升沿。
- 记录此时的值作为低电平的起始点。
2. **捕获上升沿**:
- 当检测到上升沿时,再次记录TBCCRO的值,并将触发方式切换回下降沿。
- 记录此时的值作为低电平的结束点。
3. **脉冲宽度计算**:
- 通过比较两次捕获的值,可以计算出低电平持续的时间。
- 脉冲宽度可以通过这些值和时钟频率来计算。
#### 知识点四:代码示例分析
文章还提供了一段实际的代码示例,用于展示上述步骤的具体实现方法。该代码主要包括以下部分:
1. **系统初始化**:
- 包括使能XT2时钟、等待XT2稳定工作以及选择XT2作为主时钟和子系统时钟源。
2. **定时器B配置**:
- 包括配置定时器B的工作模式、选择输入源、设置中断等操作。
3. **中断服务程序**:
- 定义了中断服务程序,在捕获到上升沿或下降沿时更新相关的寄存器和变量。
通过以上详细的讲解,我们可以清楚地了解到如何利用msp430微控制器的定时器B功能来实现对PWM波形脉冲宽度的有效测量。这不仅涉及到了硬件配置,还涵盖了软件编程的具体细节,对于理解和应用msp430系列微控制器具有重要的参考价值。