历史上的今天
返回首页

历史上的今天

今天是:2025年01月18日(星期六)

正在发生

2020年01月18日 | MSP430定时器 TIMER0_A1_VECTOR

2020-01-18 来源:eefocus

msp430g2553有两个定时器,一个是Timer0,一个是Timer1。TIMER0_A1_VECTOR ,TIMER0_A0_VECTOR是Timer0的中断向量,在430中,CCR0中断与CCR1,CCR2,溢出中断没有在一个中断向量表中,两个是分开的。CCR0中断具有最高优先级,而其余三个在一个中断向量表中。Timer1也相同,所以就有4个中断向量。


MSP430中,不同的型号拥有不同的硬件配置,因此中断源也有所差别,TIMER1_A0_VECTOR表示定时器1 A0的中断源,1代表硬件上的定时器,有定时器0 定时器1等;A0代表定时器n内的A0寄存器,通常会有A0 A1等,他们都计数源都来自同一个定时器,但对计数源的数据可以进行不同的处理,从而产生不同的中断。


http://elitezhe.diandian.com/m430-ta-vector/


在M430G2553头文件中有如下定义


#define TIMER0_A1_VECTOR (8 * 2u) /* 0xFFF0 Timer0)A CC1, TA0 */

#define TIMER0_A0_VECTOR (9 * 2u) /* 0xFFF2 Timer0_A CC0 */

.

.

#define TIMER1_A1_VECTOR (12 * 2u) /* 0xFFF8 Timer1_A CC1-4, TA1 */

#define TIMER1_A0_VECTOR (13 * 2u) /* 0xFFFA Timer1_A CC0 */ 


可见,每个TimerA模块有两个中断向量


http://blog.lehu.shu.edu.cn/879836630/A450185.html


/*TIMER0_A0_VECTOR是计时器0的CCR0的中断寄存器,TIMER0_A1_VECTOR是计时器0的CCR1-CCR4、TA的寄存器*/


/*同理定时器TA1也是分为两个TIMER1_A0_VECTOR和TIMER1_A1_VECTOR*/


#pragma vector=TIMER0_A1_VECTOR


__interrupt void TimerA(void)


{


   switch(__even_in_range(TA0IV,14))


   /* 这句话的意思是:只有在TA0IV的值是在0--14内的偶数时才会执行switch函数内的语句


            其作用是提高switch语句的效率*/


   {


      case 2:P1OUT=BIT1;break; //TACCR1 CCIFG置位,表明计数值和设定的13107相等了,也就是说计了0.4S了


      case 4:P1OUT=BIT2;break; //TACCR2 CCIFG置位,表明计了0.8S了


      case 6:P1OUT=BIT3;break; //TACCR3 CCIFG置位,表明计了1.2S了


      case 8:P1OUT=BIT4;break; //TACCR4 CCIFG置位,表明计了1.6S了


      case 14:P1OUT=BIT5;break;   //TAIFG置位,表明计了2S了


      default:break;


   }


  


}


MSP430F5529共有两类共4个定时器,分别是Timer_A定时器3个和Timer_B定时器1个,按照每个寄存器配备的捕获/比较器的个数分别命名为Timer0_A(内有5个捕获比较器)、Timer1_A(3个)、Timer2_A(3个)、Timer0_B(7个)。


这一章,我们讲定时器Timer0_A.(A类的都一样)


注意:下面所提到的所有寄存器,在TA后面插入0或1或2就分别表示Timer0_A、Timer1_A、Timer2_A(我这里省略了数字)


http://blog.sina.com.cn/s/blog_6cd2030b01017x71.html


定时器Timer_A


1,MSP430g2553具有两个16位的定时器:Timer0_A   Timer1_A。分别具有三个捕捉/比较寄存器,具有输入捕捉,输出比较功能。可以产生定时中断,也可以产生PWM。


http://wenku.baidu.com/link?url=SlZcpjkvyoopvl-N8GwqcVsz039iKhk0yqkEBNPMv0ch_PtBkiTUl9tXJ8jTBFHXY5n-soEXUGrYctYNSixAadGm7DQ2rJXftq3roJcbPRW


msp430 TIMER实验报告


http://wenku.baidu.com/link?url=u1hFOAHosUwk4LvR4M5tno77kb3aM8a_AKZ7bTKBGTkjizUPbcHjc7Ol-OQnoYtB99o1j-1Jha01z0g8U35lBKk8tgsszoVHb1_8pGOERf7


https://bbs.eeworld.com.cn/thread-339382-1-1.html


首先找选择合适的PWM输出引脚,比如第1路PWM想用TA0控制,第2路PWM用TA1控制

查器件手册(是针对具体型号的,不是UserGuide哦):


TA0支持的引脚有P1.1、P1.2、P1.5、P1.6、P2.6(P2.6一般不用,因为要接晶振哦)

TA1支持的引脚有P2.0 --> P2.5。

选择方便的,假设我选择了P1.6(TA0.1)和P2.2(TA1.1),且第1路由ACLK驱动输出4KHz方波,第2路也有ACLK驱动但是输出2KHz占空比25%的方波。


P1DIR |= BIT6; // 选择P1.6的第二功能,即TA0.1

P1SEL |= BIT6;

CCR0 = 7; // PWM 周期  = ACLK@32768/4KHz-1 = 8.192-1 = 7

CCTL1 = OUTMOD_6; // CCR1 reset/set

CCR1 = 3; // CCR1 PWM 占空比50% = 

8.192*50% - 1 = 3

TACTL = TASSEL_1 + MC_1; // ACLK, up mode


P2DIR |= BIT2; // 选择P2.2的第二功能,即TA1.1

P2SEL |= BIT2;

TA1CCR0 = 15; // PWM 周期= ACLK@32768/2KHz-1 = 16-1 = 15

TA1CCTL1 = OUTMOD_6; // CCR1 reset/set

TA1CCR1 = 3; // CCR1 PWM 

占空比25% = 16*25% - 1 = 3

TA1CTL = TASSEL_1 + MC_1; // ACLK, up mode


不复杂吧

ACLK最多支持32768Hz的PWM,如果要更高频率,需要换时钟源为SMCLK,即代码改为:

TACTL = TASSEL_2 + MC_1; // SMCLK, up mode


当然时钟源换了,控制频率的CCR0和CCR1的值要重新计算。

友情提示:如要进入LPM3,则PWM的时钟只能为ACLK,因为在LPM3下DCO(一般作为SMCLK的源)会关闭。

推荐阅读

史海拾趣

得倍(DBIC)公司的发展小趣事

倍(DBIC)公司深知人才是企业发展的核心动力。因此,公司高度重视人才培养和团队建设。公司建立了完善的培训体系,为员工提供丰富的培训资源和学习机会。同时,倍(DBIC)公司还积极引进优秀人才,构建了一支高效、专业的团队。这支团队在公司的发展中发挥了重要作用,为公司创造了巨大的价值。

Captive Fastener公司的发展小趣事

随着全球市场的不断扩大,Captive Fastener公司意识到国际合作的重要性。公司积极寻求与国际知名电子制造商的合作机会,通过提供高质量的紧固件产品和技术支持,成功打入国际市场。同时,公司还与国外同行开展技术交流与合作,不断提升自身的技术水平和市场竞争力。

AEMC Instruments公司的发展小趣事

除了提供优质的产品外,AEMC Instruments公司还注重服务升级和客户关怀。公司建立了完善的客户服务体系,提供售前咨询、售后技术支持等全方位服务。同时,公司还定期举办技术培训和交流活动,帮助客户更好地使用和维护产品。这些举措不仅提高了客户的满意度和忠诚度,也促进了公司与客户的长期合作关系。

以上五个故事是基于AEMC Instruments公司的发展情况所做出的概括性描述,旨在展示公司在电子行业中的成长历程和取得的成就。当然,具体的发展故事还需要根据公司的实际情况和历史记录来深入挖掘和呈现。

Edcon Components Netherlands Cv公司的发展小趣事

企业文化是Edcon Components Netherlands Cv的重要组成部分。公司注重企业文化的培养和传承,形成了积极向上的企业氛围和团队精神。通过组织各类活动和培训,增强员工的归属感和荣誉感;通过建立公平的激励机制和晋升通道,激发员工的积极性和创造力。这些措施使得Edcon的团队更加紧密团结、高效协作,为公司的发展提供了有力保障。

遨格芯微(AGM)公司的发展小趣事

遨格芯微(AGM)自2012年成立以来,始终致力于可编程逻辑技术的研发。经过数年的努力,AGM成功开发出具有自主知识产权的FPGA核心技术,并在FPGA编译软件和电路领域取得了先进和成熟的技术成果。2014年,AGM的PLD芯片成熟并开始在行业得到应用,这标志着AGM在可编程逻辑技术领域取得了重大突破。随后,AGM推出三个系列的CPLD、FPGA、Programmable SoC产品,并进入量产阶段,得到了包括三星在内的多家知名厂商的认证,为公司的进一步发展奠定了坚实基础。

FREESCALE (NXP)公司的发展小趣事

除了在智能手机和IoT市场取得突破外,AGM还深耕工业和消费类市场。公司自主研发并量产的可编程逻辑SoC产品系列广泛应用于工业和消费类市场,满足了客户对高容积率、低成本、高品质的市场需求。通过不断的技术创新和产品优化,AGM在工业和消费类市场逐渐形成了自己的竞争优势,并赢得了越来越多客户的认可和信赖。

问答坊 | AI 解惑

请教怎样实现路径选择界面

E:\\mobile.bmp 如图,请教高手怎么实现这样的文件打开时的路径选择界面, 最上面一行显示当前路径, 下面可以点选,进入或返回上一级路径, 多谢高手指教。 …

查看全部问答>

有个问题,能帮我解决的现金酬谢

有哪位兄台知道如果利用AT命令控制短信猫设备拨打USSD号码:如:*111*222×NNN#这样的号码。 如果有成功实现过的请和我联系。QQ:61238333.如果能帮我解决问题。现金200元酬谢。…

查看全部问答>

如何在窗口最下面那条(输入法旁边)上添加按钮?

Wince对话框程序 需要在最下面的蓝色条上添加个按钮 我加了ToolBar却显示在了窗口里面 高手快来啊 …

查看全部问答>

外部RAM问题

本帖最后由 dontium 于 2015-1-23 13:29 编辑 在一批2812的电路板焊好后,发现绝大部分板子程序不能LOAD到外部RAM,其原因可能是啥,是外部RAM坏吗,DSP坏. …

查看全部问答>

基于单片机的音乐喷泉设计

求一个基于单片机的音乐喷泉设计程序,如果有硬件设计就更好了。 这个头一次做,根本不知道咋下手,菜鸟一名,大大们先帮帮忙吧~谢谢…

查看全部问答>

TI的M3/M4能用作工业控制用么

请问TI的M3/M4能用作工业控制用么?…

查看全部问答>

uCOS-II的中文注释

这是我分享的一个uCOS-II的源代码中文注释的资料,很不错,希望对需要的人有所帮助,有些人传一些资料,还得售价,哎,一点共享贡献意识也没有啊 这个不是邵贝贝的,邵的那个我会传的,放心都是不要“钱”的…

查看全部问答>

12864在画波形时清屏特慢

做了一个12864驱动的心跳监测系统,每次扫过128位后清屏,要用近1秒才能完成,请高手指教一下,你们是不是也碰上类似的问题?…

查看全部问答>