This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 我有项目代码想要清除振荡器故障标志,但它没有帮助

Guru**** 2389930 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/620984/i-had-project-code-want-to-clear-the-oscillator-fault-flag-but-it-didn-t-help

你好

   我有一个项目初始化PIN PJ.4和PJ.5作为驱动LED的IO,我的项目代码必须测试HFXT振荡器故障标志,因此,振荡器故障无法清除。
   下面是我的项目代码:

cstartup.s43文件

1. BIC.W #LOCKLPM2,&PM5CTL0       // 禁用GPIO开机默认高阻抗模式
2. bis.B #BIT0,&P1DIR                 // 将WFP 1.0 设置为输出方向
3. bis.B #BIT0,&P1OUT                // WFP 1.0 输出高
4. BIS.B #BIT4,&P7DIR                 // 输出SMCLK
5. bis.B #BIT4,&P7SEL1               // 输出SMCLK
6. bis.B #BIT4,&P7SEL0

main.c文件

1.无效主电源(无效)
2.{
3. WDTCTL = WDTPW | WDTHOLD;            //停止WDT
4. FRCTL0 = FRCTLPW | NWITS_1;
5. PJDIR |= BIT4 + BIT5;                       //将WFP 7.4 , WFP 7.5 设置为输出方向
6. PJOUT |= BIT4 + BIT5;                      //输出高
7.//时钟系统设置
8. CSCTL0_H = CSCKEY >> 8;                  //解锁CS寄存器
9. CSCTL1 = DCOFsel_4| DCORSEL;        //将DCO设置为16MHz
10.
11. CSCTL3 = DIVs__1 | DIVM__1;
12. CSCTL4 |= LFXTOFF;                    //关闭LFXT
13.行动
14.{
15. CSCTL5 &=~HFXTOFFG;                 //清除HFXT故障标记
16. SFRIFG1 &=~OFIFG;
17.}同时(SFRIFG1&OFIFG);                 //测试振荡器故障标志,无法清除
18. CSCTL0_H = 0;                          //锁定CS寄存器
19. P1OUT ^= BIT0;                         //切换WFP 1.0
20.同时(1);
21.}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Hu,

    我真的不明白你在这里要做什么。 看起来您正在尝试设置HFXT,然后使用PJ.4和PJ.5驱动LED。 是这样吗?

    看起来您在HFXT上使用了错误的引脚。 HFTX输入/输出引脚是PJ.6和PJ.7,需要正确设置这些引脚,以便晶体振荡。 看起来您还设置了LFXT引脚来驱动LED (PJ.4和PJ.5)。 这与您声称您使用的是WFP 7.4 和WFP 7.5 的说法相反。

    此致,  
    Caleb Overbay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的硬件图:PJ.6和PJ.7仅用于HFXT,PJ.4和PJ.5仅用于LED,我从DCO设置SMCLK和MCLK,并使用WFP 7.4 输出SMCLK
    Soft:我的项目需要LFXT (CSCTL4|= LFxTOFF)
    主要问题:只要LFxTOFFG清楚地表明问题已解决,OFIFG就会由于LFxTOFFG的设置而保持设置。我尝试以下语句,但它也没有帮助
    CSCTL5 &=~(LFXTOFFG | HFXTOFFG);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Hu,

    你说的是一些自相矛盾的东西。 在您的硬件部分,您说您正在使用HFXT,在软件部分,您说您正在使用LFXT。 您也没有为代码中的晶体输入/输出正确设置任何PIN。

    为了让事情稍微澄清一点,LFXT是一种低频晶体输入,而HFXT是一种高频晶体输入。 您尝试使用的晶体的频率是多少?

    要使用LFXT,必须为PJ.4和PJ.5设置适当的PxSELx寄存器。 使用HFXT时,您必须为PJ.6和PJ.7设置适当的PxSELx寄存器。 这是您在发布的代码中没有执行的操作,也是您的晶体没有正常振荡以及相应的HFXTOFFG或LFxTOFFG无法清除的原因。

    我建议您看看 TI资源浏览器中的一些时钟示例。 这些说明了如何正确设置晶体并清除故障标志。

    此致,

    Caleb Overbay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢,我将看一些计时示例,可能是我的项目出错了,我会找到并修复它。谢谢。
    此致,
    Hu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Hu,

    您是否能够使工作正常?

    此致,
    Caleb Overbay