1154|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

MSP430F149的TIMERA定时中断理解 [复制链接]

代码如下:


//本平台 msp430f149
#include
#include

volatile unsigned char count = 0,flag = 0;
void select_xt2(void){
       
        unsigned char i;
       
        /*------选择系统主时钟为8MHz-------*/
    BCSCTL1 &= ~XT2OFF;                        
        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();                //8MHz晶振       
        P2DIR = 0xFF;
        P2OUT = 0x00;
       
        CCTL0 = 0X0010;          // CCR0 中断使能,或写为 CCTL0 = CCIE;
        CCR0 = 10000;
          TACTL = 0X02E0;        // SMCLK = 1MHz, 连续计数模式
         _EINT();               // 开启全局中断
       
        while(1){
                if(count == 50){
                        count = 0;
                        P2OUT  = ~P2OUT ;
                
                }
               
        }

}

// Timer A0 中断服务函数
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
  count ++;
  CCR0 += 10000;            // 下次中断时间装入CCR0中
}
我是比较 喜欢直接配置寄存器而不是使用库函数进行与或,所以在设置TACTL时


根据需要:1.使用8分频将8MHz变为1MHz


2.使用SMCLK子系统时钟,在设置xtal2中SMCLK和MCLK一样是外部晶振8MHZ


3.使用连续计数模式,此模式要手动重装


其余位均为0


所以TACTL控制字为:


0000,0010,1110,0000


02E0


CCTL0寄存器配置:、


因为我们是使用比较模式,开启中断,所以只有CCIEx位为1,其余全为0


控制字为:0X0010。此时也可以直接写出CCTL0 = CCIE0;不过我还是喜欢配置寄存器来写


CCR0中装入计数初值10000,当计数到10000,count加一,重装CCR0。当count等于50时,count=0

 
点赞 关注(1)

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表