




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
S.D.Lu的MSP430入门学习笔记(9):定时器TimerA(4)捕获功能本篇笔记介绍如何使用TimerA的捕获模式校准DCO、测量方波信号的频率/周期、脉宽和占空比。对DCO时钟进行校准对信号脉宽、占空比等参数的测量要求高频时钟。但是MSP430G2452的不支持外部高频时钟,所以不能使用外部高频晶振作为时钟源。内部数控时钟DCO就成了唯一选择。虽然TI在出厂时对MSP430的DCO进行了校准,保存了1MHz、8MHz、12MHz、16MHz这几个频率的校准值,但是由于工作环境的不同,会因为温度等因素的影响而产生较大的偏差。所以,在对时钟要求较高的设计中,最好对其进行再次校准。对DCO进行校准的基本原理是用TimerA定时器的捕获/比较功能,进行两个频率的比较,然后根据比较结果调整DCO的输出,直到得到指定频率。具体方法是,使用外部的32768Hz晶振作为基准时钟源,使用TimerA的捕获功能对DCO的频率进行测量,然后通过DCOx、MODx和RSELx位来调节DCO的频率,直到其输出等于想要的频率。请看例程:本例中,P1.4用于输出SMCLK,即DCOCLK,程序运行时,可以用示波器观察P1.4口的信号,以确认当前的DCOCLK频率。同时,在不同DCO频率下,可以观察到P1.0上的LED闪烁频率不同。在2124行选择任意一行,屏蔽其它3行,可以得到16MHz、12MHz、8MHz、1MHz不同的DCOCLK频率。函数void Set_DCO(unsigned int Delta);的作用就是设定DCO输出指定频率。应该注意的是,参数Delta的单位是4069Hz。下面对该函数的代码进行分析。37行,对LFXT1CLK进行8分频作为ACLK,因为本例中LFXT1使用外部32768Hz晶振,所以ACLK=32768Hz/8=4096Hz,这就是Delta的单位。38行,将CCR0单元设置为捕获上升沿模式,信号输入为CCI0B,即ACLK=4096Hz。为什么CCI0B是ACLK呢?请查看MSP430G2452对应的数据手册。39行,TimerA的时钟源选择SMCLK,即DCOCLK,这就是我们要测量的频率。选择连续计数模式,并清零计数器。43行,等待,直到捕获发生。在此是通过查询TACCTL0的标志位CCIFG的方法确认捕获是否发生的。44行,捕获发生之后,TACCTL0的CCIFG位置1。在此清零该位,以便下次捕获的识别。45行,将本次捕获的值存入变量Compare。46行,对本次捕获值和上次捕获值进行求差,并存入Compare。47行,将本次捕获的值存入变量Oldcapture,作为下次求差的数据。49-50行,如果相邻两次捕获的差值=要设定的值,则完成校准,退出41行的while(1)。51-57行,如果相邻两次捕获的差值要设定的值,说明DCO频率太高,通过DCOx、MODx和RSELx位来降低DCO的频率。58-64行,如果相邻两次捕获的差值用IO模拟发送串口数据测量方波信号的频率/周期、脉宽和占空比时,需要有输出终端,通过串口发送数据到PC上显示是比较好的选择。所以在此插入一个用IO模拟发送串口数据的例子。使用USB转TTL串口线连接MCU和PC使硬件变得简洁。因为MSP430G2452的片上外设并没有UART,所以需要通过其他的方法来实现UART的功能。本笔记只涉及到数据发送,所以用IO模拟UART时序发送数据是最简单的方法。UART的基本数据格式如下图。起始位是一个位宽的低电平;然后是8位数据,低位在前,高位在后;之后是一位校验位,该位也可以没有;最后是停止位,它是一个位宽的高电平,停止位的宽度也可以是1.5个或2个位宽。空闲时,数据线为高电平。选定UART的通讯波特率之后,就可以知道其位宽。比如波特率为9600,那么其位宽约为104微秒。我们在“DCO校准”的例子基础上修改,增加一个串口发送函数。如下图,主函数前面增加了两个宏定义和一个函数声明,主函数中增加一个变量,在while(1)增加串口发送数据的函数调用。void Set_DCO(unsigned int Delta)函数在主函数之后进行定义。 在1MHz频率下,该函数对应的串口参数为:9600,8,N,1。程序运行结果是,P1.1口循环发送0255,并伴随LED闪烁。将USB-TTL串口线连接到PC上即可通过串口调试助手接收显示数据。测量方波信号的频率测量信号频率的基本方法是,在固定的时间内对信号上升沿/下降沿进行计数。事实上,校准DCO的例子就是一个测量信号频率的应用,只不过它测量的是MCU内部的信号。本节例子将在“用IO模拟发送串口”例子基础上修改。对外部方波信号的频率进行测量,然后通过IO模拟串口频率值发送到PC上。注意本例中的IO端口配置,P1.0用作TACLK输入,P1.1用作普通IO输出,模拟UART时序发送串口数据。void Set_DCO(unsigned int Delta)和void IO_UART_SendChar(unsigned char dat)没有改变。串口函数增加两个:用到了定时器中断:void Timer_Init();函数将TimerA初始化。和Set_DCO( ) 函数中对TimerA的配置基本相同,只是将频率输入端改为了外部输入TACLK,并使能了CCR0的捕获中断。本例的关键在CCR0的捕获中断函数。CCR0的捕获输入信号是ACLK,而ACLK在Timer_Init()函数中被配置为LFXT1CLK/8,即32768Hz/8=4096Hz。所以,每秒钟产生4096次CCR0捕获中断。213行,保存本次捕获值。214行,求出本次捕获值(new_dat) - 上次捕获值(old_dat)的差值。Capture_dat中保存的值,就是上次中断到本次中断之间TACLK输入的信号的脉冲数。需要注意的是,有可能出现new_dat 1000000)用于控制唤醒CPU发送串口数据的时间间隔。因为TACLK=16MHz/8=2MHz,每个时钟周期是0.5us,即sum_pos_Capdat的单位是0.5us。而sum_pos_Capdat是对TACLK计数的累加和,所以当sum_pos_Capdat= 1000000的时候,经过的时间是0.5秒。当if(sum_pos_Capdat 1000000),执行到258行后,CPU被唤醒,主函数4356行会被执行一次,串口发送一次频率、周期和占空比数据。247行,因为sum_pos_Capdat的单位是0.5us,所以计算时先2,将其单位换算成us。Period_cnt是周期计数器,所以一个周期时间就是sum_pos_Capdat/2/Period_cnt,单位:us。248行,频率是周期的倒数。因为Period的单位是us,所以1/Period的单位是MHz,1000000/Period的单位就是Hz。249行,sum_neg_Capdat是信号的高电平时间的累加和,sum_pos_Capdat是所有计数周期的累加和,所以占空比为sum_neg_Capdat/sum_pos_Capdat,单位是1。所以sum_neg_Capdat/(sum_pos_Capdat/1000)的单位就是0.1% 。需要注意的是,这里的计算不能写成sum_neg_Capdat / sum_pos_Capdat * 1000。因为sum_neg_Capdat sum_ pos _Capdat,所以sum_neg_Capdat / sum_pos_C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全球化市场中的创新管理考核试卷
- 护理病房室内空气质量检测方法考核试卷
- 固体肥料生产过程优化考核试卷
- 光缆回收技术国际合作与交流考核试卷
- 广告数据安全与用户信任度研究考核试卷
- 仪器制造数据加密与用户操作习惯的平衡探讨考核试卷
- 化学平衡的移动(含答案)-2026届高三化学一轮复习学案
- 硫及其化合物-2026年高考化学(解析版)
- 化学反应的热效应(练)-2023年高考化学一轮复习(新教材新高考)
- 2020年成人高考高起专语文文言文阅读自测
- 浙江省嘉兴市2024-2025学年高三基础测试试卷语文
- T-CPQS C010-2024 鉴赏收藏用潮流玩偶及类似用途产品
- 教师进城考试试题16套
- NB-T10394-2020光伏发电系统效能规范
- DZ∕T 0215-2020 矿产地质勘查规范 煤(正式版)
- 2024年社区工作者考试必考1000题(轻巧夺冠)
- (正式版)SHT 3229-2024 石油化工钢制空冷式热交换器技术规范
- 重大危险源(专项)施工方案
- 2022年上海市各区高三语文二模卷【作文题目解析及例文】汇集练
- 营养支持综合进修汇报
- 医务人员服务礼仪和技巧课件
评论
0/150
提交评论