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.

[参考译文] MSP430FR6007:USART 接收中断延迟

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1249302/msp430fr6007-usart-receive-interrupt-delayed

器件型号:MSP430FR6007

 ‘:msp430FR6007和 CCS 12.0.000009并使用"c"

 

6007在1个等待状态下运行。  USART 以57.6kbps 的速率运行。

 

只打开两个中断: USART A0和 TimerA0。  计时器设置为约1ms。

 

向6007发送异步流时、接收中断在接近800us 后发生、而不是相当快(期望很快)。  我附上了显示问题的逻辑分析仪(pdf)的输出。

 

在图片中、T4是在 USART 中断例程的前几条指令中产生的脉冲。  同样、T7是在计时器中断路由的前几条指令中发出的脉冲。

 

您可以看到第一个 USART int 在接收字符后约900 us 发生。  之后,它们在收到字符后迅速发生。

 

我不得不承认我被绊了一下。  请提供帮助。  我在某个地方做错了事。

 

此致

鲍勃·斯科特

bobscott@jamesport.com

214.673.1439  

 

 e2e.ti.com/.../Scan230717100508.pdf

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

    延迟进入中断服务例程的通常原因是有另一个正在运行的原因。 在进入一个 ISR 时、全局中断(GIE)被禁用。

    当然、你可以在 ISR 内启用中断、但是必须非常小心以避免故障。

    看起来定时器节拍与第一个延迟的 UART 节拍同时也被延迟。 查看计时器 ISR。

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

    信号 T7在定时器 ISR 开始时被置位、并在结束时复位。  我已经查看了我能想到的每一件事、但是没有找到在那个时间 帮助下运行的另外一个 ISR!!  因此、定时器 ISR 在所述时间内不会运行。  帮助!!!

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

    您可以检查吗:为什么计时器中断看起来不同?

    如果您删除所有内容并仅保留 UART 传输功能、该怎么办?

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

    好的。  找到了。 对我来说,这是一个完全愚蠢的**错误。  在 USART int 例程的前面的状况测试,它是被挂了那里。  它甚至不应该进入 int 例程的该部分、但它是。  逻辑分析仪脉冲仅涵盖 int 例程的接收部分。  当更改分析仪以涵盖整个例程时、问题变得非常明显。

     

    还没有修复、但现在我知道问题的真正原因应该很简单

     

    非常感谢四你的帮助。  发现问题。

     

    此致

    鲍勃·斯科特

    bobscott@jamesport.com

    214.673.1439