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.

[参考译文] LM3S8962:检查超时原始中断状态(闪烁 A LED)

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/682294/lm3s8962-check-the-time-out-raw-interrupt-status-blink-a-led

器件型号:LM3S8962
主题中讨论的其他器件:LM3S811

我正在使用计时器超时执行闪烁。 尽管我遵循数据表中的说明、但我不知道该程序为什么不起作用。 我猜是这样  

条件"(TIMER0_RIS_R & 0x01) = 1 "为故障、因此 LED 不会闪烁。 有人能帮我吗!!!

int main()

//将系统时钟设置为8MHZ
SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);

//启用 Timer0
SYSCTL_RCGC1_R = SYSCTL_RCGC1_TIMER0;

//禁用配置的 Timer0
TIMER0_CTL_R &=~0x01;

//选择32位计时器  
TIMER0_CFG_R |= 0x00;


//选择周期模式
TIMER0_TAMR_= 0x02;


//加载值4,000,000
TIMER0_TAILR_R |= 0x3D0900;


//Star the Timer0
TIMER0_CTL_R |= 0x01;


//======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== //
//启用 GPIO //
//======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== //


//为板载 LED 和 SW2启用 GPIO 端口 F:
SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOF;

//启用 LED 的 GPIO 引脚(位0)
//设置方向 LED (位0)-输出
GPIO_PORTF_DIR_R = 0x01;

//启用 GPIO 引脚:
GPIO_PORTF_DEN_R = 0x01;

while (1){

  如果((TIMER0_RIS_R & 0x01) = 1){

     TIMER0_ICR_R |= 0x01;
     // TIMER0_CTL_R &=~0x01;
     GPIO_PORTF_DATA_R θ^= 0x01;
     // TIMER0_CTL_R |= 0x01;
  }
 }

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

    大家好、Tuan、

    1) 1) LM3S 为 NRND、您应该与 TM4C123G 一起继续工作。 我们不会在 NRND 器件上为新设计/项目提供支持。 下面是 TM4C123G LaunchPad :http://www.ti.com/tool/EK-TM4C123GXL

    2) 2)迁移到 TM4C123G 时、您应该使用 TivaWare 而不是 DRM、我们的 TivaWare API 已经开发好、可为所有客户减轻 DRM 的负担、并且我们在 TivaWare 中已经完成了一个闪烁示例。 如果您确实希望使用 DRM、请参考 TivaWare 工程以了解所有必需的 DRM 调用(如果您调查每个 API、API 本身将使用 DRM)、 但了解这一点可能会阻止您获得详细的 TI 支持、因为我们不会花时间重新发明专为避免 DRM 出现您所面临的问题而精心设计的 TivaWare API。

    TivaWare 下载: http://www.ti.com/tool/SW-TM4C

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我是来自这里的一位长期 LM3S 用户。

    您的代码看起来不错、但我没有对照数据表进行检查。 我建议如下。

    1.确保您可以使 LED 闪烁。
    2.如果您有调试器,请确保计时器正在运行。
    3. if 语句恰好是正确的,但我通常不显式测试非零条件。 我只显式测试零条件。 因此、在您的代码中、我将改用。

    if (register & mask) do-sating()。

    或显式测试零条件。

    if ((register & mask)=0) do-senting()。

    如果您需要、我有一组 LM3S 系列的代码、希望能让您顺利完成。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    与使用"DRM"(顺便说一下、您为什么这么做?)非常不一样(也是如此) 作为 LM3S 器件的"同行"用户-我感到不得不(尝试)提供帮助。   (以及-有时-成功...)

    您必须注意 "" (如果您不是、请谷歌搜索)您的困难(可能)主要来自您选择的以下方面:

    • "硬而简单" (即32位/更简单) 16位计时器)
    • 结果/目标的"劫持人质" -"间接"因素 (即 定时器的原始中断状态(尝试)... 可能会阻止您的 LED 运行)
    • 未能"测试并验证"LED 代码"的执行符合预期  (您严重依赖该"计时器中断"-但(其他)事件可能会阻止 LED 响应!)

    "kiss"指示您编写代码(理想情况下通过 API -正如供应商的 Ralph 所建议的那样),以便它“系统”和“递增”... 一次测试/验证一步!

    您是否至少在"RIS 中断测试"中未测试过独立于其插入的 LED 代码(即开/关)?   创建这样的"依赖关系"是毫无意义的、并且(当然)会耗费时间和精力。

    作为一个"提示"-在   启动 "RIS 测试"之前、您是否(之前)具有"启用定时器中断"-然后确保"所有"都已清除/清除?

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

    [引用 USER="Tuan Kiet Dang"]// 板载 LED 和 SW2启用 GPIO 端口 F
    SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOF;

    上面的内容引起了我的注意-海报声称(LED 和开关(中断发生器)都位于端口 F 上

    然后-海报代码显示:

    [引用 USER="Tuan Kiet Dang"]//启用 GPIO 引脚:
    GPIO_PORTF_DEN_R = 0x01;[/QUERP]

    因此-端口 F -引脚"0"-是唯一启用的引脚!   (由于海报的"分配"而产生的结果)  开关-假设它确实位于端口 F 上-必须 为"无法检测!"

    除此之外-正如我之前的帖子所述-海报的代码未显示任何设置或配置。 端口 F 中断的说明-放置(另一个)路障来检测其电路板的开关!

    应该注意  的是、供应商 的"思考已解决"远远 没有 "  真正解决"的更详细/更深刻的帖子?

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

    以下是您在 LM3S811的仿真器中运行的代码、只需进行最小修改即可翻转 PC5。

    如果您想知道、它还在真正的 LM3S811上完美运行。

    您的代码大部分是声音。 只是做了一些小的调整。