[应用相关] 不焊接ACLK时钟源仍能工作不

[复制链接]
633|16
 楼主| feiqi1 发表于 2020-4-26 20:01 | 显示全部楼层 |阅读模式
前不久在修理一些坏板子的时候发现,板子上的外部晶振取下来后,用ACLK作时钟源的TimeA中断事件仍然被触发,通过仿真后发现确实进入TimerA中断函数中,并且IFG1中的OFIFG位也未被置1。。
androidbus 发表于 2020-4-26 20:05 | 显示全部楼层
/初始化时调用函数,初始化DCO为8MHZ

void InitClk()

{

  /*等待电压稳定*/

  DelayN(30);



  IE1 |= OFIE;                              /*Ena××e osc fault int (NMI)*/

  BCS1_Fren_Addr=(uchar*)CALBC1_8MHZ_;

  BCSCTL1 = *BCS1_Fren_Addr;

  DCO_Fren_Addr=(uchar*)CALDCO_8MHZ_;

  DCOCTL = *DCO_Fren_Addr;

}

//中断函数检测OSC 错误

#pragma vector=NMI_VECTOR

__interrupt void OscFault(void)

{

  volatile uint uiCnt;

#ifdef ALARMLED

  LedR_1;

#endif

  do                                        /* Loop until flag is clear*/

  {

    IFG1 &= ~OFIFG;                         /* Clear fault flag*/

    for (uiCnt = 0xFFFF; uiCnt; uiCnt--);                /* Delay for crystal to start*/

  }

  while (IFG1 & OFIFG);                     /* Test LF oscillator fault flag*/

  IE1 |= OFIE;                              /* Re-ena××e osc fault int*/

#ifdef ALARMLED

  LedR_0;

#endif  

}

//TimerA初始化函数

void InitTimer()

{

  uint uiResultInteger;

  TACTL = TASSEL0 + TACLR + ID0;  /*TimerAClock=ACLK ,divided by 2,clear TAR*/

  TACTL |= MC0;

  uiResultInteger = rand();

  uiResultInteger &= 0x00ff;

  CCR0 = (uiResultInteger + uiWorkFrequence)<<3;  /*woke interval = (CCR0)*0.061ms */

  CCTL0 |= CCIE;                   /*CCR0 interrupt ena××e*/

}
litengg 发表于 2020-4-26 20:08 | 显示全部楼层
可以用SCI烧写;但是具体我还没搞定。希望有经验的上传点资料。
litengg 发表于 2020-4-26 20:10 | 显示全部楼层
串口烧写也是可以的,你的片子型号是什么?
qiangweii 发表于 2020-4-26 20:13 | 显示全部楼层
看user's guide上说MCLK的时钟源如果选择外部XT2,XT2失效后会自动切换到DCO,那是不是ACLK也会有LFXT1切换为其他的时钟源呢?
shashaa 发表于 2020-4-26 20:17 | 显示全部楼层
晶振失效时,DCO接替.
TimerA3中断函数据中
xia00 发表于 2020-4-26 20:22 | 显示全部楼层
"TACTL = TASSEL0 + TACLR + ID0; "没有将TA的时钟源选为你想要的ACLK,TACTL仍为0,实际选了TACLK.
hfdy01 发表于 2020-4-26 20:26 | 显示全部楼层
ACLK默认是XT1CLK(32768Hz),如果晶振不工作,会自动切换到内部的REFOCLK(32768Hz).
CallReceiver 发表于 2020-4-26 20:30 | 显示全部楼层
内部时钟rc震荡还是起作用的。
boy1990 发表于 2020-4-26 20:32 | 显示全部楼层
先检查硬件方面的,看晶振是否正常起振的。
sourceInsight 发表于 2020-4-26 20:36 | 显示全部楼层
这个就跟你的程序的时钟工作设置有关系的。
bbapple 发表于 2020-4-26 20:39 | 显示全部楼层
这个就跟你的程序的时钟工作设置有关系的。
handleMessage 发表于 2020-4-26 20:42 | 显示全部楼层
这个如楼上说的,外部时钟没启用的时候,会自动切换到内部晶振的
zhouhuanの 发表于 2020-4-26 20:44 | 显示全部楼层
应该是使用个DCO晶振。
wanglaojii 发表于 2020-4-26 20:46 | 显示全部楼层
MCLK的时钟源如果选择外部XT2,XT2失效后会自动切换到DCO。
laozhongyi 发表于 2020-4-26 20:48 | 显示全部楼层
MCLK的时钟源如果选择外部XT2,XT2失效后会自动切换到DCO。。
Edisons 发表于 2020-4-26 20:50 | 显示全部楼层
可以自动切换内部时钟。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

424

主题

1616

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部