大连创客空间

 找回密码
 立即注册吧!

QQ登录

只需一步,快速开始

一键登录:

搜索
查看: 6709|回复: 34
收起左侧

【大赛原创经验贴】基于MSP430G2231实现的频率计

  [复制链接]
发表于 2012-7-14 10:01:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多交流,硬件的世界向你敞开大门!

您需要 登录 才可以下载或查看,没有帐号?立即注册吧!

x


1. 初始化模块
设备初始化包括关闭看门狗,时钟初始化,端口初始化以及液晶初始化
初始化程序如下
voidConfigWDT()//关闭看门狗
{
       WDTCTL = WDTPW + WDTHOLD;
}
void ConfigClocks()        //配置时钟
{
       BCSCTL1 = CALBC1_1MHZ;                // Set range
      DCOCTL= CALDCO_1MHZ;               // Set DCO step +modulation
      BCSCTL3|= LFXT1S_0;                      //LFXT1 = VLO
      IFG1&= ~OFIFG;                          // Clear OSCFault flag
      BCSCTL2|= SELM_0 + DIVM_0 + DIVS_0;      // MCLK= DCO, SMCLK = DCO
}
voidConfigPort()          //设置端口
{
       P1DIR&=~BIT(5);    //  P1.5设为输入
      P1IES&=~BIT(5);     //  P1.5设为第二功能
      P1IE|=BIT(5);        //   开启I/O中断
}
voidConfigTimer()        //设置定时器
{
       TACTL=TASSEL_1+MC_2+TAIE+TACLR+ID_0;     //TA基准时钟为32768HZ、
}                                            连续计数模式、无分频、开启定时中断
2. 中断模块
首先开启定时溢出中断和I/O中断,再打开总中断,计数器开始计数,当计数溢出时进入溢出中断,且溢出次数加1,当有上升沿到来时,进入I/O中断,计算两次中断之间(一个周期内)的计数值,并转化为频率值,当频率较大时,计数值较小,产生的误差大,所以利用多个周期的计数值,最后再取均值,这样得到的频率值就比较精确,本设计采用100个周期的计数值。
TA中断
//  I/O中断
#pragmavector=PORT1_VECTOR     
__interrupt void P1_ISR (void)
{     
       static unsigned int i=0;            //  I/O中断计数值

       if(P1IFG&BIT(5))
              i++;
       if(i>=100)                     //    计数100次
       {
              i=0;
              Period=(((unsignedlong int)TA_OverflowCnt)<<16)+TAR;    //   获得100个周期内的时钟个数
              TA_OverflowCnt=0;
              TACTL|=TACLR;           //   定时清零
       }
       P1IFG=0;      
}

//   Timer_A中断程序
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A (void)
{
              switch(TAIV)                //  TA中断方式选择
       {
              case 2:break;
              case 4:break;
              case 10: TA_OverflowCnt++;    //   溢出中断计数加1
                       break;
       }
}

3.  显示模块
首先根据12864液晶的时序图写出液晶驱动函数,并调用驱动函数完成在指定位置处显示字符的功能函数,这样通过定时刷新液晶屏就可以显示频率值了,而且显示位置可以根据需要任意指定。
3.3  软件调试
本设计使用C语言作为控制语言,在CCS环境下进行调试,调试的时候可以分功能模块进行。分为LCD显示模块,计数模块和中断模块。编译过程如下:
1.       在CCS下编写完程序后,执行编译(Build)
如果出现错误,编译框下方会提示出错的原因,根据提示耐心修改。
2.       编译通过,执行Debug,
这时必须仔细检查硬件与下载线是否连接完好,如果没有正确连接,程序无法被下载到单片机内。
3.       调试过程中,可在线查看变量和寄存器的值
Debug窗口下,自左向右依次是去掉断点、全速运行、暂停、停止、进入、单步、汇编进入、汇编单步、返回、同步时钟、复位。
在程序运行后,暂停时可以打开Watch和Regesiter窗口内观察寄存器和变量的变化。

回复

使用道具 举报

 楼主| 发表于 2012-7-14 11:16:08 | 显示全部楼层
受不鸟~
回复 支持 反对

使用道具 举报

发表于 2012-7-15 08:36:35 | 显示全部楼层
好多鸟。。。。。。
回复 支持 反对

使用道具 举报

发表于 2012-7-15 08:38:55 | 显示全部楼层
:lol
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-15 08:49:41 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-15 10:56:05 | 显示全部楼层
{:soso_e176:}{:soso_e195:}
89_avatar_middle.jpg
回复 支持 反对

使用道具 举报

发表于 2012-7-15 20:07:05 | 显示全部楼层
受教了。。。
回复 支持 反对

使用道具 举报

发表于 2012-7-15 22:03:02 | 显示全部楼层
正在努力学习当中。。。
回复 支持 反对

使用道具 举报

发表于 2012-7-16 10:33:18 | 显示全部楼层
BCSCTL3|= LFXT1S_0;                      //LFXT1 = VLO

这个注释应该写错了吧
回复 支持 反对

使用道具 举报

发表于 2012-7-18 22:15:03 | 显示全部楼层
不错。
回复 支持 反对

使用道具 举报

发表于 2012-7-19 13:07:36 | 显示全部楼层
正在努力学习当中。。。
回复 支持 反对

使用道具 举报

发表于 2012-7-22 11:15:45 | 显示全部楼层
谢谢共享  下载了
回复 支持 反对

使用道具 举报

发表于 2012-7-23 08:12:58 | 显示全部楼层
能捕捉中断吗
回复 支持 反对

使用道具 举报

发表于 2012-7-23 11:22:37 | 显示全部楼层
努力
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-31 07:57:06 | 显示全部楼层
海阔天空yc 发表于 2012-7-15 20:07
受教了。。。

   
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-31 07:58:24 | 显示全部楼层
liushuifong 发表于 2012-7-22 11:15
谢谢共享  下载了

               
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-31 07:59:01 | 显示全部楼层

                  
回复 支持 反对

使用道具 举报

发表于 2012-8-4 15:49:23 | 显示全部楼层
:L
回复 支持 反对

使用道具 举报

发表于 2012-8-4 16:35:21 | 显示全部楼层
谢谢共享
回复 支持 反对

使用道具 举报

发表于 2012-8-7 16:47:09 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册吧!

本版积分规则

单片机开发者1群:235808606;会员QQ 6群:254085994; 1群:12835691(满); 2群:121061287(满); 3群:237320668(满);4群:249652919(满);5群:253578883(满);大赛1群:187926790(满),2群:231577758(满),3群:249652919(满)。 TI杯4群:58129202(满)。
载入中

QQ|手机版|小黑屋|Archiver|大连创客空间 ( 辽ICP备15004617号-2  

GMT+8, 2017-1-24 17:12 , Processed in 0.250239 second(s), 28 queries .

地址:辽宁省大连市高新园区火炬路7号17层 QQ:2401085253

Copyright © 2010-2015 创客空间(大连)科技有限公司 All Rights Reserved.

快速回复 返回顶部 返回列表