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.

[参考译文] CCS/MSP430FR5994:MSP430停止以进行持续刷新

Guru**** 2562120 points
Other Parts Discussed in Thread: BQ78350, MSP430FR5994

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/602824/ccs-msp430fr5994-msp430-stops-for-continuous-refreshing

器件型号:MSP430FR5994
主题中讨论的其他器件:BQ78350

工具/软件:Code Composer Studio

您好!  

我将使用 MSP430FR5994 Launchpad 通过 I2C 向 bq78350发送命令。 遗憾的是、当我使用连续刷新模式来观察表达式时、CPU 会冻结几个周期。

以下是不连续刷新的引脚切换(使用专用计时器时为500ms)的输出:


这是具有连续刷新的输出:

是否有任何方法可以解决这个问题、或者 MSP430无法实时观察表达式?

谢谢、

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

    该时钟信号来自何处? 您如何生成它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Dennis。

    我的时钟和计时器配置如下:

    时钟

    CSCTL0_H = CSKKEY_H; //解锁 CS 寄存器
    CSCTL1 = DCOFSEL_0; //将 DCO 设置为1MHz
    CSCTL2 = SELA_LFXTCLK | SELESS__DCOCLK | SELM_DCOCLK;//设置 ACLK = XT1;MCLK = DCO
    CSCTL3 = DIVA__1 | DIVM_1 | DIVM__1;//将所有分频器设置为1
    CSCTL4 &=~LFXTOFF;
    操作
    {
    CSCTL5 &=~LFXTOFFG; //清除 XT1故障标志
    SFRIFG1 &=~OFIFG;
    } while (SFRIFG1和 OFIFG); //测试振荡器故障标志
    CSCTL0_H = 0; //锁定 CS 寄存器 

    计时器

    TA0CCTL0 = CCIE_1; //启用 TACCR0中断
    TA0CCR0 = 500;
    TA0CTL = tassel_SMCLK | MC__Continuous; // SMCLK、连续模式 

    引脚1.2在此中断中每500ms 切换一次

    #pragma vector = TIMER0_A0_VECTOR
    __INTERRUPT void Timer0_A0_ISR (void)
    {
    count_500ms++;
    
    如果(COUNT_500ms>=500){COUNT_500ms = 0;计时器= t_500ms;P1OUT^= BIT2;}
    
    TA0CCR0 += 500;
    } 

    我发送的图像来自 PIN1.2输出。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可能还有另一个中断会延迟计时器中断的时间? 如果您只需要方波信号而不在定时器 ISR 内部发生任何其他事情,则可以不使用 ISR,并在硬件中使用定时器-有不同的操作模式,如切换、复位/设置... 这完全独立于任何软件执行、不会因任何原因而延迟。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不这么认为、Dennis。 问题是、只有当我激活持续刷新时、CPU 才会停止/冻结几个周期。
    我认为与另一个 ISR 无关。 如果是这种情况、我的计时器在这两种情况下都会出现相同的问题(持续刷新打开和关闭)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dennis 和读完这条线程的人。

    实时调试存在 MPS430限制。 不能在不影响中断的情况下连续刷新表达式。



    在此主题中、有一些建议:

    https://e2e.ti.com/support/microcontrollers/msp430/f/166/p/105704/373204?tisearch=e2e-sitesearch&keymatch=real-time%20msp430#373204