LPC900单片机脉冲捕获高精度实现与应用

3星 · 超过75%的资源 需积分: 10 4 下载量 130 浏览量 更新于2024-09-19 收藏 157KB PDF 举报
"捕获脉冲宽度是利用LPC900系列单片机的CCU模块实现的一种高精度脉冲波形测量技术,常见于测量应用场合。本文将介绍捕获模块的初始化、速率、时间、精度以及编程注意事项,帮助用户全面掌握LPC900捕获功能的使用。" 在LPC900系列单片机中,捕获/比较单元(Capture/Compare Unit,简称CCU)是实现脉冲宽度捕获的核心组件。该模块具备高精度,适用于各种需要测量脉冲参数的场景。初始化捕获模块至关重要,主要涉及以下几个步骤: 1. **预分频器设置**:PCLK通过10位预分频器调节CCU的时钟频率,以达到所需的计数速度。 2. **定时器重装值设定**:设定CCU定时器的初始值,这决定了捕获间隔。 3. **CCCR寄存器配置**:配置CCCRA和CCCRB,设定捕获的延迟、边沿选择和噪声滤波器。 4. **启用捕获中断**:开启对应的捕获通道中断,确保捕捉到脉冲事件。 5. **清除中断标志位**:初始化时应清零中断标志位,确保捕获过程不受先前事件影响。 6. **使能CCU中断**:开启ECCU和全局中断EA,确保捕获事件能够触发中断服务程序。 7. **启动捕获模块**:通过设置TCR20为1,启动CCU捕获功能,确保在定时器启动时就开始计数。 捕获模块的性能取决于多个因素,包括捕获的速率、时间和精度。速率由预分频器和重装值决定,时间是脉冲宽度的直接度量,而精度则涉及到噪声滤波器的设定,它可以减少由于噪声引起的测量误差。捕获的精度还受到系统时钟和硬件设计的影响。 在程序编写过程中,应注意以下问题: 1. **中断处理**:确保中断服务程序能够及时、正确地处理捕获事件,更新或存储捕获值。 2. **同步问题**:避免在捕获过程中修改与捕获相关的寄存器,防止数据不一致。 3. **异常情况处理**:考虑可能的异常情况,如电源波动、时钟失效等,并做好相应的错误处理。 4. **软件滤波**:如果硬件滤波效果不理想,可以通过软件算法进一步优化脉冲宽度的测量结果。 LPC900系列单片机的捕获/比较模块结构复杂,包含多个寄存器,例如ICRxH/L(捕获寄存器)、OCRxH:OCRxL(比较通道寄存器)、TOR2H:TOR2L(重装寄存器)等。每个寄存器都有特定的功能和位设置,详细信息可以参考单片机的使用手册。 通过理解这些概念和技术,开发者可以充分利用LPC900的CCU模块,实现高精度的脉冲宽度测量,从而在各类应用中发挥其优势,比如电机控制、信号分析、通信协议解析等。