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.
我正在使用计时器超时执行闪烁。 尽管我遵循数据表中的说明、但我不知道该程序为什么不起作用。 我猜是这样
条件"(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
与使用"DRM"(顺便说一下、您为什么这么做?)非常不一样(也是如此) 作为 LM3S 器件的"同行"用户-我感到不得不(尝试)提供帮助。 (以及-有时-成功...)
您必须注意 "吻" (如果您不是、请谷歌搜索)您的困难(可能)主要来自您选择的以下方面:
"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 中断的说明-放置(另一个)路障来检测其电路板的开关!
应该注意 的是、供应商 的"思考已解决"远远 没有 " 真正解决"的更详细/更深刻的帖子?