1883|2

3

帖子

1

TA的资源

一粒金砂(初级)

楼主
 

定时器模块底层控制原理三态门求高手 [复制链接]

  1. #include "msp430x14x.h"
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. uchar num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  5.                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  6. uchar wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  7. uchar n=0,i=0;
  8. void main( void )
  9. {
  10.   uint a;
  11.   // Stop watchdog timer to prevent time out reset
  12.   WDTCTL = WDTPW + WDTHOLD;

  13.   //IE1|=WDTIE;
  14.   //WDTCTL=WDT_ADLY_1_9;
  15.   P4DIR=0xff;
  16.   P6DIR|=0x18;
  17.   P4OUT=0x00;

  18. /*
  19.   BCSCTL1&=~XT2OFF;    //设置XT2CLK有效
  20.   do
  21.   {
  22.     IFG1&=~OFIFG;       //清除失效标志
  23.     for(a=0xff;a>0;a--);//稳定时间
  24.   }
  25.   while((IFG1&OFIFG)!=0); //如果失效标志仍存在则继续循环清除 */
  26.   BCSCTL2|=SELS;   // 选择XT2CLK为SMCLK的时钟源
  27.   
  28.   
  29.   CCTL0=CCIE;   //CCR0中断允许
  30.   CCR0=20000;
  31.   TACTL=TASSEL_2+TACLR+MC_1;//定时器A时钟源为SMCLK,计数器清零,增计数模式
  32.   _EINT();
  33. }
  34. #pragma vector=TIMERA0_VECTOR
  35. __interrupt void timer_A(void)
  36. {
  37.   P6OUT=0x08;
  38.   P4OUT=0x00;
  39.   P4OUT=wei[i++];
  40.   P6OUT=0x10;
  41.   P4OUT=num[n++];
  42.   P6OUT=0x00;
  43.   if(i==8)i=0;
  44.   if(n==8)n=0;
  45. }
复制代码




上面的代码运行正常!有疑问的地方是:
比如上面的程序中选择子系统时钟源SMCLK为XT2,使用之前要打开XT2,XT2才进入工作状态
代码如下:
BCSCTL1&=~XT2OFF;    //设置XT2CLK有效
  do
  {
    IFG1&=~OFIFG;       //清除失效标志
    for(a=0xff;a>0;a--);//稳定时间
  }
  while((IFG1&OFIFG)!=0); //如果失效标志仍存在则继续循环清除 */

我在程序中屏蔽掉了这一段;但是程序依旧如开始一样运行良好
也就是说没打开XT2 ,子系统时钟会默认选择DCO 800KHZ 运行程序
按照这个时钟源频率 数码管刷新现象会变得很明显(即目视能看清数码管是一个一个动态刷新的,已验证),
可是数码管的刷新还是和原来没屏蔽这段的现象一样,如果屏蔽下面的一句代码
  BCSCTL2|=SELS;   // 选择XT2CLK为SMCLK的时钟源
就会出现目视能看清数码管是一个一个动态刷新的现象

查了下资料 为了方便下面是时钟模块的截图
C:\Documents and Settings\Administrator\桌面
即控制XT2是否输出的是一个三态门 只有在三态门的使能端EN = 1(相当于XT2OFF = 0) 时输出才随输入变化,
即当XT2OFF = 1时(相当于EN = 0)为第三种状态高阻态(既不是高电平也不是低电平)
可是上面的程序中明明屏蔽掉了打开XT2部分的代码,只是SMCLK选择了XT2做为时钟源 可是实验测试证明SMCLK工作的时钟源
不是默认的时钟源DCO而是XT2。
这是为什么呢???
 
点赞 关注

回复
举报

3

帖子

1

TA的资源

一粒金砂(初级)

沙发
 
时钟模块的图片没有传上去。。。不好意思啊 我在看看能不能传上去
 
 

回复

3

帖子

1

TA的资源

一粒金砂(初级)

板凳
 
时钟模块截图

时钟模块截图.jpg (58.04 KB, 下载次数: 0)

时钟模块截图.jpg
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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