历史上的今天
返回首页

历史上的今天

今天是:2025年04月01日(星期二)

正在发生

2021年04月01日 | 简述MSP430定时器

2021-04-01 来源:eefocus

MSP430的定时器中有比较捕获的概念,刚刚接触非常生疏。看了半天终于清楚:


比较模式:


这是定时器的默认模式,当在比较模式下的时候,与捕获模式相关的硬件停止工作,如果这个时候开启定时器中断,然后设置定时器终值(将终值写入TACCRx),开启定时器,当TAR的值增到TACCRx的时候,中断标志位CCIFGx置一,同时产生中断。若中断允许未开启则只将中断标志位CCIFGx置一。


例子:比较模式就像51单片机一样,要能够软件设置定时间隔来产生中断处理一些事情,如键盘扫描,也可以结合信号输出产生时序脉冲发生器,PWM信号发生器。如:不断装载TACCRx,启动定时器,TAR和TACCRx比较产生中断处理。


捕获模式:


利用外部信号的上升沿、下降沿或上升下降沿触发来测量外部或内部事件,也可以由软件停止。捕获源可以由CCISx选择CCIxA,CCIxB,GND,VCC。完成捕获后相应的捕获标志位CCIFGx置一


捕获模式的应用:


利用捕获源的来触发捕获TAR的值,并将每次捕获的值都保存到TACCRx中,可以随时读取TACCRx的值,TACCRx是个16位的寄存器,捕获模式用于事件的精确定位。如测量时间、频率、速度等


例子:利用两次捕获的值来测量脉冲的宽度。或捕获选择任意沿,CCISx=”11“(输入选择VCC),这样即当VCC与GND发生切换时产生捕获条件


结合利用:异步通讯


同时应用比较模式和捕获模式来实现UART异步通信。即利用定时器的比较模式来模拟通讯时序的波特率来发送数据,同时采用捕获模式来接收数据,并及时转换比较模式来选定调整通信的接受波特率,达到几首一个字节的目的


----------------------------------------


利用MSP430单片机定时器A和捕获/比较功能模块结合使用,实现脉冲宽度的测量。


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


2-例程


#include


unsigned int start,end;


unsigned char overflow;


void main (void)


{


WDTCTL = WDTPW+WDTHOLD; //关闭看门狗定时器


P1DIR = BIT0+BIT4; //设置P1.0方向为输出


P1SEL = BIT2; //设置P1.2端口为功能模块使用


TACTL = TASSEL0+TACLR+TAIE+MC1; //定时器A时钟信号选择ACLK,同时设置定时器A计数模式为连续增计模式


CCTL1 = MC0+SCS+CAP+CCIE; //输入上升沿捕获,CCI0A为捕获信号源


_EINT(); //中断允许


while(1); //LOOP


}


#pragma vector=TIMERA1_VECTOR //定时器A中断处理


__interrupt void timer_a(void)


{


switch(TAIV) //向量查询


{ case 2: //捕获中断


if(CCTL1&CM0) //上升沿


{


CCTL1=(CCTL1&(~CM0))|CM1; //更变设置为下降沿触发


start=TAR; //记录初始时间


overflow=0; //溢出计数变量复位


}


else if (CCTL1&CM1) //下降沿


{


CCTL1=(CCTL1&(~CM1))|CM0; //更变设置为上升沿触发


end=TAR; //用start,end,overflow计算脉冲宽度


}


break;


case 10: //定时器溢出中断


overflow++;


break; //溢出计数加1


default:break;


}


}


//例程结束


-----------------------------------


Timer_A定时器:


注:msp430有两个16位定时器Timer_A和Timer_B.二者基本相同。


主要有TACTL,TAR,CCTL0,CCR0,CCTL1,CCR1,CCTL2,CCR2,TAIV几个寄存器。其中最主要的是TACTL寄存器,它决定Timer_A的输入时钟信号,Timer_A的工作模式,Timer_A的开启与停止,中断的申请等。


定时器A大致可分为四个功能模块:计数器、比较/捕获寄存器0、比较/捕获寄存器1、比较/捕获寄存器2。计数器是主体它是一个开启和关闭的定时器,如果开启它就是一直在循环计数,只会有一个溢出中断,也就是当计数由0xffff到0时会产生一个中断。那怎么实现定时功能呢?这就要靠三个比较/捕获寄存器了以后用CCRx表示。CCR0比较特殊,通过他可以改变计数器的最大计数值,也就是当计数器计数到CCR0的值时自动会将计数器清零。但这需要设置相应的工作模式,模式列表如下:


0——停止模式,用于定时器的暂停


1——增计数模式,计数器计数到CCR0,再清零计数


2——连续计数模式,计数器增计数到0xffff,再清零计数


3——增/减计数模式,增计数到CCR0,再减计数到0


当计数器计数到CCR0时,CCR0单元会产生一个中断。同样当计数器计数到CCR1和CCR2时,两个单元也都会个产生一个中断。这样我们可以通过定时器A得到三个定时时间了。


看程序中的定时器初始化模块。CCTLx是相应比较/捕获寄存器的控制寄存器。它可对比较/捕获寄存器进行设置,在这里只用到比较功能,也就是当计数到CCRx时产生中断,由于CCTLx默认的是比较功能,所以一般也就只用到CCIE这个控制字,就是开启相应比较器的中断。CCRx就是相应比较器的值。


下面介绍几个Timer_A的重要寄存器:


TACTL寄存器:


SSEL_1 SSEL_0 是时钟源的选择


0——TACLK,使用外部引脚信号作为输入


1——ACLK,辅助时钟


2——SMCLK,子系统主时钟


3——INCLK,外部输入时钟


对TACTL进行模式设置的同时也开启了定时器,要停止只需把MC_0赋值给TACTL就可以。


ID1 ID0 是时钟源的分频选择


00——不分频


01——2分频


10——4分频


11——8分频


MC1 MC0 是模式选择


0——停止模式,用于定时器的暂停


推荐阅读

史海拾趣

CINCH公司的发展小趣事

随着业务的不断发展,CINCH公司开始寻求市场拓展和战略合作的机会。公司积极与国内外知名企业建立合作关系,共同开发新产品、拓展新市场。同时,CINCH公司还加强了对新兴市场的关注,通过参加国际展会、举办技术研讨会等方式,提升品牌知名度和影响力。这些举措有效地推动了公司的市场拓展和业务发展。

Echelon_Corporation公司的发展小趣事

Echelon Corporation于1988年在美国加州成立,其初衷是开发和推广先进的通信和控制技术。在成立初期,Echelon便推出了其标志性的LonWorks控制网络平台。该平台采用了开放的通信协议,使得不同厂商的设备可以无缝连接和通信,为工业自动化、建筑自动化等领域带来了革命性的变化。LonWorks平台的成功推出,为Echelon在电子行业奠定了坚实的基础。

西安航天民芯公司的发展小趣事

随着新能源汽车市场的蓬勃发展,西安航天民芯敏锐地捕捉到了这一机遇。公司投入大量资源进行新能源汽车BMS管理芯片的研发,并成功推出了国内首款新能源汽车专用BMS管理芯片。这一创新产品填补了国内空白,为公司在新能源汽车领域赢得了先机。

Caddell-Burns Manufacturing公司的发展小趣事

在竞争激烈的电子行业中,质量管理是企业生存和发展的关键。Caddell-Burns Manufacturing公司深知这一点,因此他们始终将质量放在首位。公司建立了严格的质量管理体系,从原材料采购到产品生产、检验、包装等各个环节都进行严格把关。同时,公司还定期对员工进行质量培训,提高他们的质量意识和操作技能。这些措施确保了公司产品的稳定性和可靠性,赢得了客户的信赖。

Digital Voice Systems Inc公司的发展小趣事

Digital Voice Systems, Inc.(DVSI)于1988年成立,当时正值数字通信技术的兴起阶段。公司创始人凭借对语音编解码技术的深刻理解和前瞻性的市场洞察力,决定投身于这一领域。他们开发出了具有专利保护的基于鲁棒性多带激励模型(MBE Model)的低码率语音压缩算法,如IMBE和AMBE编解码系统。这些算法在当时的市场上独树一帜,为DVSI赢得了第一桶金。

在创立初期,DVSI面临着资金、技术、市场等多方面的挑战。然而,他们凭借着坚定的信念和不懈的努力,逐步克服了这些困难。他们不断投入研发,优化算法,提高产品的性能和稳定性;同时,他们积极开拓市场,与各大通信设备制造商建立合作关系,将产品推向市场。

随着时间的推移,DVSI的产品逐渐在市场上获得了认可。他们的编解码系统被广泛应用于移动通信、卫星通信、军事通信等领域,为客户提供了高效、稳定的语音通信解决方案。DVSI也因此逐渐崭露头角,成为了电子行业中一颗耀眼的明星。

故事二至五框架概述

  1. 技术创新与突破:DVSI在语音编解码技术方面的持续创新,如推出新一代的高效压缩算法,进一步提升了产品的竞争力。
  2. 市场拓展与国际化:随着公司实力的增强,DVSI开始拓展国际市场,与全球多家知名企业建立合作关系,实现了国际化发展。
  3. 合作与竞争:在电子行业中,DVSI与其他企业的合作与竞争并存。他们通过合作共赢的方式,共同推动行业的发展;同时,也面临着来自竞争对手的挑战和竞争压力。
  4. 企业文化与团队建设:DVSI注重企业文化建设,倡导创新、协作、共赢的价值观。他们注重团队建设,吸引了一批优秀人才加入公司,为公司的发展提供了有力的人才保障。

以上故事和框架概述仅供参考,您可以根据这些线索进一步挖掘和编写关于DVSI公司的故事。

Fuji Teminal Industry Co Ltd公司的发展小趣事

关于Fuji Terminal Industry Co., Ltd.(富士端子工业有限公司)在电子行业中的发展起来的相关故事,由于直接关于该公司的详细发展历程和具体故事可能较为有限,且该公司可能更多地专注于特定领域(如端子、连接器等的制造),以下是根据一般行业经验和公司可能经历的发展路径,构建的五个相关故事:

1. 初创与专业化定位

在电子行业的早期,Fuji Terminal Industry Co., Ltd.作为一家新兴企业,凭借对端子技术的深入研究和市场需求的敏锐洞察,选择了专业化的发展道路。公司创始人或核心团队凭借在电子元件领域的丰富经验,决定专注于端子、连接器等基础电子元件的研发与生产。通过不断的技术积累和产品优化,公司逐渐在行业内树立了专业、可靠的形象。

2. 技术创新与品质提升

随着电子行业的快速发展,Fuji Terminal Industry Co., Ltd.意识到技术创新和品质提升是企业持续发展的关键。公司加大了研发投入,引进先进生产设备和技术人才,致力于开发更高性能、更可靠的端子产品。同时,公司建立了严格的质量控制体系,确保每一件产品都能达到客户的高标准要求。这些努力不仅提升了公司的市场竞争力,也赢得了客户的广泛信赖。

3. 市场拓展与国际化战略

在稳固国内市场的同时,Fuji Terminal Industry Co., Ltd.积极实施国际化战略,将目光投向了更广阔的国际市场。公司通过参加国际展会、建立海外销售网络等方式,不断拓展海外市场。凭借其优质的产品和服务,公司成功打入了欧美、亚洲等多个国家和地区的市场,实现了业务的快速增长。

4. 供应链整合与成本控制

面对日益激烈的市场竞争,Fuji Terminal Industry Co., Ltd.深知供应链整合和成本控制的重要性。公司积极与上下游企业建立长期稳定的合作关系,通过优化供应链管理、降低采购成本、提高生产效率等方式,有效控制了生产成本。同时,公司还注重与客户的沟通与协作,共同应对市场变化和挑战。

5. 可持续发展与环保责任

随着全球对环保问题的日益关注,Fuji Terminal Industry Co., Ltd.积极响应可持续发展的号召,将环保理念融入企业的生产经营中。公司致力于开发环保型端子产品,减少生产过程中的环境污染和能源消耗。同时,公司还加强了废弃物的回收和再利用工作,为构建绿色、低碳的电子信息产业链贡献了自己的力量。

需要注意的是,由于直接关于Fuji Terminal Industry Co., Ltd.的详细发展历程和具体故事可能较为有限,以上故事是基于一般行业经验和公司可能经历的发展路径构建的。实际情况可能因公司战略、市场环境等因素而有所不同。

问答坊 | AI 解惑

帮助推广论坛,可获赠芯币

EEWORLD社区的发展离不开大家的支持,为了让更多的朋友知晓EEWORLD,特举办“推广EEWORLD社区送芯币”活动: 1、坛子里的朋友在其他论坛或博客发帖; 2、贴中建立本站的两个链接(可以是自己觉得不错帖子的地址,也可以是不错博文的地址),即可 ...…

查看全部问答>

开关电源软件设计及破解

本帖最后由 paulhyde 于 2014-9-15 09:11 编辑 自己做的电源模块  …

查看全部问答>

900M低噪声放大器设计介绍

900M低噪声放大器设计介绍…

查看全部问答>

2440快停产了,2416 能代替它吗?

三星最新推出的2416芯片相比2440具有压倒性的优势,是完美替代2440的首要选择 1.        性能以及对视频播放能力的支持:2416 主频400MHz和2440持平,但是2416是ARM926JES内核,是ARM920T的增强版本,治理运行速度方面比2440 ...…

查看全部问答>

WINCE下 中断响应时间最小可以做到多小

我想在WINCE下做串口通信,最小的响应时间可以是多小。通常需要怎么来实现。…

查看全部问答>

从C++Builder转入wince开发

从C++Builder转入wince开发, 准备用C++在wince5下开发, 在网上看了很多,还是不怎么清楚, 想问问,用C++在wince5下开发,用什么开发工具好, 用evc4?看了《EVC高级编程及其应用开发》说evc4 不支持wince5开发, 用vs2005?直接用vs2005里 ...…

查看全部问答>

wince用什么3g模块啊?

请问各路大仙,在开发wince中一般用的是什么3g模块啊? 在网上看到很多,都是关于驱动的问题,有没有什么型号的3g模块提供了驱动的啊? 最好是usb的3g网卡。 谢谢!!…

查看全部问答>

深圳招聘电子工程师

深圳市智祥源科技有限公司 诚聘: 电子工程师 1.大专以上学历,电子,电气相关专业 2.有MCU电路产品设计经验,热爱电子行业,领悟性强,有责任心,具有团队精神 3.熟悉常用电子器件原理特性及筛选 4.熟练使用PROTEL,熟悉模数电路设计 5.英文良好, ...…

查看全部问答>