历史上的今天
今天是:2025年01月15日(星期三)
2020年01月15日 | msp430学习笔记之中断处理函数
2020-01-15 来源:eefocus
//本平台 msp430f149
#include void select_xt2(void){ unsigned char i; /*------选择系统主时钟为8MHz-------*/ BCSCTL1 &= ~XT2OFF; //打开XT2高频晶体振荡噿 do{ IFG1 &= ~OFIFG; //清除晶振失败标志 for (i = 0xFF; i > 0; i--); //等待8MHz晶体起振 }while ((IFG1 & OFIFG)); //晶振失效标志仍然存在_ BCSCTL2 |= SELM_2 + SELS; //MCLK和SMCLK选择高频晶振 } void main(){ WDTCTL = WDTPW + WDTHOLD; select_xt2(); P2DIR = 0x80; P2OUT = 0xff CCTL1 = CCIE; // CCR1 中断使能 CCR1 = 10000; TACTL = TASSEL_2 + MC_2 + ID_3; // SMCLK = 1MHz, 连续计数模式 _EINT(); //打开全局中断 while(1){ if(count == 50){ count = 0; P2OUT ^= BIT7; //led灯每0.5s变化一次 } } } #pragma vector=TIMERA1_VECTOR __interrupt void Timer_A1(void) { CCR1 += 10000; // count ++; } 昨天写了一段这样的代码,本想用定时器a 每0.5s控制led灯状态,发现程序运行不符合预期效果,仔细检验发现根本就没有进中断,count 值不变。先贴上可用的代码,再仔细分析修改后的中断处理函数: #pragma vector=TIMERA1_VECTOR __interrupt void Timer_A1(void) { switch(TAIV){ case 2: CCR1 += 10000; // count ++; } } 这两个中断处理函数区别在修改后的多用了switch语句,里面还有TAIV,也就是中断向量值 仔细阅读数据手册,发现TAIFG的中断入口地址是TIMERA1_VECTOR,同时也是TACCR1和//TACCTR2的CCIFG的入口地址。TACCRO单独使用TIMERA0_VECTOR。从官方给出的代码,使用TACCR1事中断函数里面也有switch语句,结合上面这个图,分析中断处理代码,执行 switch(TAIV) 不难发现,TAIV是与CCIFG所在的向量值匹配,也就是查询中断向量,提供一个入口地址, 执行后case语句的代码,现在可以理解未修改之前中断处理函数count值为改变的原因。 以上都是本人结合官方的源码和数据手册做出的分析,如有出入的地方,欢迎指正!
上一篇:MSP430之ADC采集滤波
史海拾趣
|
全球最大的半导体厂商大举挺进AV产品等主处理器市场。美国英特尔已制定了面向电视、蓝光录像机、机顶盒(STB)等台式AV产品以及路由器等网络设备等各种用途,正式开展SoC(system on a chip)☆业务的方针。 ☆SoC(system on a chip):集成有计 ...… 查看全部问答> |
|
每次找工作遇到挫折了,我都会在心里慢慢安慰自己“我是人才,我一定会找到一份我适合我的工作的”。 一转眼,一个月过去,我本以为我来深圳之后,在我会很快的进入一家大企业,比如:中兴,华为了。可是现在才知道,当时 ...… 查看全部问答> |
|
三相无刷无传感器直流电机检测仪是飞盈佳乐最新一代的专门针对三相无刷无霍尔传感器直流电机的检测仪器。该产品驱动能力强,功率大,测试速度快,测量范围大,具自动断电保护,可以在线及时显示电机运行时各项参数,是无传感无刷电机的性能测试的好产 ...… 查看全部问答> |
|
按照http://www.hzlitai.com.cn/bbs/viewthread.php?tid=11487&pid=67161&page=1&extra=#pid67161 提示加入,没有想到在系统启动的时候不停的打印 EvaluateEventFlag (eventMask = 0x80) - device was closed EvaluateEventFlag (eventMask ...… 查看全部问答> |
|
采用S3C2410开发板,实现基于linux的数据采集软件!! S3C2410中,利用GPIO口获取FPGA传来的数据进行数据处理,利用QT库完成软件的界面设计。。小妹我刚接触嵌入式的开发。。请求各位高人指点下。软件的模块之类的!!不胜感激。。… 查看全部问答> |
|
STM32高密度型器件是可以与TFT LCD相连的,其中占用了FSMC一些控制线(如NEx,NOE等),现在要做的项目是一个触屏手持设备,需要做界面,含有图片较多(以数组形式存放的话,一幅256色图片,320*240的话,一个点一字节,那一幅图需70K左右空间 ...… 查看全部问答> |




