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/MSP430F149:MSP-FET (新)无法针对 MSP430F149进行调试

Guru**** 2524550 points
Other Parts Discussed in Thread: MSP430F149, MSP-FET

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/600833/ccs-msp430f149-msp-fet-new-can-not-debug-for-msp430f149

器件型号:MSP430F149
主题中讨论的其他器件: MSP-FET

工具/软件:Code Composer Studio

尊敬的所有人:

我询问 MSP430F149的调试及其 TA 计数器。

我有一个使用 MSP430F149的项目。 在此项目中、我使用 TA 计数器和 TB 计数器。 为了测试 TA 计数器的运行、我有一个小型程序"测试"。

使用 MSP430F149电路板、Code Composer Studio 7.1和 MSP-FET 闪存仿真工具。

当我调试器时,我单击 Step Into 以运行每条命令行,然后 TAR 计数器会按如下方式发生混乱:0 ->38967 --> 38996 --> 42520 --> 64096 --> 38964 --> 1359 --> 23207 -->...... --> 20107 --> 42745 --> 42440 --> 10858 --> 21950 --> 32271 -->…

我不明白这是怎么做的?

我认为 TAR 必须按如下方式改变:0->1 (或者2,或者3,取决于命令周期)->2 (或者3,或者4)->3->4 ->5->...100--> 101--->… 65534 --> 65535 --> 0--> 1 --> 2 --> 3 --> 4 --> 5 -->...

请向我解释。

此外、该程序在 TA0_ISR 中永久运行、而 TA0_ISR 不会退出以跳转到 LOOP_NOT 中。 因此、调试器并不重要。 无法调试、要完成一个较长的程序将很困难。

我在 YouTube 上发布了一段视频。 请查看链接 :https://youtu.be/AQNGV9xQdx4

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

    您遇到的行为似乎正常。 TAR 正在计数0 ->1 ->2 ->3 ->4 ->5 ->... 但是、当您逐步使用调试器时、会出现多个时钟节拍、这会使计时器递增多次。

    您能否更详细地解释一下您如何在 ISR 中永久运行? 与 ISR 代码共享 TimerA 设置代码可能会有所帮助。

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

    尊敬的 Caleb Overbay:

    感谢您的回复、但您可能从未使用过调试。 在我的视频中、TAR 的上升和下降是不正常的。 从第38行到第39行、MSP430F149只执行一条指令:"MOV.w #tassel_2+MC_2、&TACTL"、但 TAR 介于0至38967之间。 XT2 = 8MHz ->周期:1/8000000 S = 0.000000125 S = 0.125uS。 因此、对于 MSP430F149 、执行指令"mov.w #tassel_2+MC_2、&TACTL"必须时间:0.125us x 38967 = 4870.875us。 这是不合理的、不可接受的。

    此致

    Do Van Lam

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

    我已经广泛地使用 MSP430微控制器系列进行了调试、并且非常熟悉我们的调试工具。 我仍然认为您所经历的行为是意料之中的。 我假设 TimerA 从外部8MHz 晶体以及 CPU (MCLK)中输出。

    调试器控制 CPU、而不是计时器模块。 您可以使用调试器停止计时器、但不能具有单个时钟周期分辨率、尤其是在8MHz 下。 因此、当您使用调试器单步执行"mov.w #tassel_2+MC_2、&TACTL"时、调试器需要1个 CPU 时钟周期、但需要超过1个时钟周期才能与 CPU 交互、从而指示 CPU 开始、执行和停止。 在此时间段内、定时器接收到多个时钟边沿并相应地递增。 换句话说、调试器无法立即停止计时器。

    实际上,计时器正在计数0 --> 1 --> 2 --> 3 --> 4 --> 5 -->... 但调试器不控制计时器计时、而是控制 CPU 计时。 我建议以其他方式验证定时器的运行。 考虑使用计时器定期切换 GPIO、然后使用示波器测量频率。

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

    您是否仍然需要有关此问题的帮助?

    此致、
    Caleb Overbay