430定时器心得分享

430定时器心得分享

ID:40743015

大小:25.55 KB

页数:12页

时间:2019-08-07

430定时器心得分享_第1页
430定时器心得分享_第2页
430定时器心得分享_第3页
430定时器心得分享_第4页
430定时器心得分享_第5页
资源描述:

《430定时器心得分享》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MSP430的定时器中有比较捕获的概念,刚刚接触非常生疏。看了半天终于清楚:比较模式:   这是定时器的默认模式,当在比较模式下的时候,与捕获模式相关的硬件停止工作,如果这个时候开启定时器中断,然后设置定时器终值(将终值写入TACCRx),开启定时器,当TAR的值增到TACCRx的时候,中断标志位CCIFGx置一,同时产生中断。若中断允许未开启则只将中断标志位CCIFGx置一。例子:比较模式就像51单片机一样,要能够软件设置定时间隔来产生中断处理一些事情,如键盘扫描,也可以结合信号输出产生时序脉

2、冲发生器,PWM信号发生器。如:不断装载TACCRx,启动定时器,TAR和TACCRx比较产生中断处理。捕获模式:   利用外部信号的上升沿、下降沿或上升下降沿触发来测量外部或内部事件,也可以由软件停止。捕获源可以由CCISx选择CCIxA,CCIxB,GND,VCC。完成捕获后相应的捕获标志位CCIFGx置一捕获模式的应用:   利用捕获源的来触发捕获TAR的值,并将每次捕获的值都保存到TACCRx中,可以随时读取TACCRx的值,TACCRx是个16位的寄存器,捕获模式用于事件的精确定位。如

3、测量时间、频率、速度等例子:利用两次捕获的值来测量脉冲的宽度。或捕获选择任意沿,CCISx=”11“(输入选择VCC),这样即当VCC与GND发生切换时产生捕获条件结合利用:异步通讯同时应用比较模式和捕获模式来实现UART异步通信。即利用定时器的比较模式来模拟通讯时序的波特率来发送数据,同时采用捕获模式来接收数据,并及时转换比较模式来选定调整通信的接受波特率,达到几首一个字节的目的----------------------------------------利用MSP430单片机定时器A和捕获

4、/比较功能模块结合使用,实现脉冲宽度的测量。     本例程用到了定时器A的CCI1A端口(例如MSP430F14X的P1.2引脚)作捕获外部输入的脉冲电平跳变,同时结合简单的软件算法就能实现脉冲宽度的测量。在实际应用中可根据例程中的start,end,overflow三个变量来计算脉冲宽度。此功能模块在实际产品应用中体现出有较高的应用价值。2-例程#includeunsignedintstart,end;unsignedcharoverflow;voidmain(v

5、oid){ WDTCTL =WDTPW+WDTHOLD;                   //关闭看门狗定时器 P1DIR=BIT0+BIT4;                        //设置P1.0方向为输出 P1SEL=BIT2;                             //设置P1.2端口为功能模块使用 TACTL=TASSEL0+TACLR+TAIE+MC1;           //定时器A时钟信号选择ACLK,同时设置定时器A计数模式为连续增计模式 CCT

6、L1=MC0+SCS+CAP+CCIE;                 //输入上升沿捕获,CCI0A为捕获信号源 _EINT();                                  //中断允许 while(1);                                 //LOOP}#pragmavector=TIMERA1_VECTOR              //定时器A中断处理__interruptvoidtimer_a(void){ switch(TAIV

7、)                              //向量查询  { case 2:                                //捕获中断        if(CCTL1&CM0)                      //上升沿         {           CCTL1=(CCTL1&(~CM0))

8、CM1;       //更变设置为下降沿触发           start=TAR;                      //记录初始时间

9、           overflow=0;                     //溢出计数变量复位         }       elseif(CCTL1&CM1)                 //下降沿        {             CCTL1=(CCTL1&(~CM1))

10、CM0;       //更变设置为上升沿触发           end=TAR;                        //用start,end,overflow计算脉冲宽度     

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。