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/TM4C1294NCPDT:SysctlReset()

Guru**** 2466550 points
Other Parts Discussed in Thread: TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/666251/ccs-tm4c1294ncpdt-sysctlreset

器件型号:TM4C1294NCPDT

工具/软件:Code Composer Studio

您好!

我已将 LCD 与 TM4C1294NCPDT 连接。  

在不使用 TI RTOS 的情况下、当我使用 SysCtlReset()复位处理器时、在开关中断时按 SW1、程序执行恢复正常、LCD 正常显示。

但是、当我使用 TI RTOS 并对同一功能进行编程时、在 SysCtlReset()之后、LCD 在执行时会损坏。

有人对为什么会发生这种情况有任何想法吗?  

我已经检查了 LCD 初始化代码、但它看起来是正确的。

谢谢你。

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

    SysCtlReset()是否正常工作(例如器件正在复位)。 复位后是否返回到 main()?

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

    [引用 user="Shyam Shankar"]在 SysCtlReset ()之后执行时,LCD 会损坏。[/quot]

    这表明、该函数执行的处理和/或时序之间存在(可能)(某些)差异-与2个源中的 w/不同。

    您不能描述 LCD 的"损坏"-但这通常提供强大的诊断帮助。   我们必须假设(现有) LCD 图像未"完全清除"-或变得不完整和/或失真。   是这样吗?

    未知是是否采用了"外部 LCD 控制器"。   如果是、RTOS 可能会影响 LCD 控制器的正确初始化。 如果您使用 MCU 的"EPI"-它(涉及)的设置和配置。 -可能未完全/正确完成...

    您是否已向 LCD 发出"CLS"(清除屏幕)命令、然后尝试显示"刷新屏幕"。   或者-您可以"稍微延迟 LCD 的初始化"-如果 RTOS "保留"可能会介入"完全/完整" LCD 初始化过程。

    与往常一样、您在第二个 LCD 上的"确认此结果"将非常有意义、并将其作为"单器件异常"加以消除。   (所有的诊断师都很可怕...)  

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

    您好 Todd、

    是的。 复位后执行确实会返回到 main()。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    LCD 损坏-是的、当 SysCtlReset()之后执行恢复时、LCD 上的显示会失真
    我已使用其它液晶屏检查、问题仍然存在。
    是的、我在初始化时清除了屏幕。

    以下 LCD 初始化步骤在 BIOS_start()函数之前完成
    1.将光标复位到初始位置
    2.延迟10ms
    3.在4位模式中初始化16x2 LCD
    4.延迟 f 10ms
    5.清除 LCD
    6.延迟 f 10ms
    7.光标关闭
    8.延迟 f 10ms
    9.进入模式
    10.延迟 f 10ms
    11.转到第一行和第0位置
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 CB1_MOBILE、

    问题已解决。 我尝试了"刷新屏幕"。 解决方案。 初始化后、我在 LCD 上写了一个空白屏幕、然后再在显示屏上写任何字符。 这解决了在 SysCtlReset()之后执行时 LCD 显示失真的问题。

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

    我的朋友对你很好-为你的"坚持"感到自豪-接受指导的能力-即使是谦逊的"外部人员"。    感谢您的"验证"-以及您的清晰报告...

    现在、LCD 操作的"4位模式"确实有吸引力-这主要是由于4个 GPIO 被"保存"。   然而、"GPIO 节省"却带来 了一些成本!    任何"噪声突发"或干扰(可能 会"干扰 " LCD (敏感)的"E"信号线路)都会(并将)严重干扰 LCD 的运行。    (与您报告的完全相同。)    

    四位模式要求"完美的数据排序"-和 "两倍的 LCD "交互次数"(8位模式要求的次数)-和加上"附加问题-由 RTOS 强加"-您  (可能)在高风险和/或"危险区域"中进入。

    我会投票(早期和经常-我住在芝加哥时"经常") 、选择您 的"切换到"更可靠的" 8位数据传输模式!     8位传输可能(偶数)允许您的 LCD (更好)与供应商的 RTOS 共存...   (也许!)    祝您有机会、我是 AMI……

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你。 应尝试提出前进的想法。 再次感谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、如果我可以建议、最好始终选择"选择稳健性"、而不是 "节省少量 GPIO!"    真的…… 总是!