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.
如何配置 RTI 模块?
2634的 RTI 模块混淆了我。
首先、我修改了 RTI_LED_BLINK 示例、以确保 LED 一直闪烁。
System_init(); Board_init(); rti_led_blink(NULL); while(1); // Board_deinit(); // System_deinit(); return 0;
DebugP_log("[RTI LED Blink Test] Timer Started...\r\n"); // /* Wait until the LED is blinked specified number of times */ // while(gBlinkCount < LED_BLINK_COUNT); // // /* Stop the RTI counter */ // (void)RTI_counterDisable(CONFIG_RTI0_BASE_ADDR, RTI_TMR_CNT_BLK_INDEX_0); // // DebugP_log("[RTI LED Blink Test] Timer Stopped...\r\n"); // // DebugP_log("All tests have passed!!\r\n"); // // Board_driversClose(); // Drivers_close();
然后、我配置 syscfg:
将时钟源设置为 SYS_CLK、将输入时钟频率设置为200m
将 RTI 输入时钟源设置为 SYS_CLK、将 输入时钟频率设置为200m
)计数器块0所需输出频率为100m、实际输出频率为100m。(与步骤1类似、将除法设置为2k Ω
将比较事件0节拍周期(usecs)设置为1M、实际节拍周期为1M。
我运行代码、LED 每1s 切换一次、当我看到寄存器时、FRC0不断增加、UC0在0-199999、 CPU0 = 199999、CMP0 不断增加、 几乎等于 FRC0
当 I 设置计数器块0所需的输出频率为2M 时、实际输出频率为2M、比较事件0节拍周期(usecs) 保持为1M
I 运行代码、LED 每1s 切换一次、 FRC0不断增加、UC0在0-199999、 CPU0 = 199999、CMP0 不断增加、 几乎等于 FRC0
当 我将比较事件0节拍周期(usecs)设置 为2M 时、其他参数不变
I 运行代码、LED 每2s 切换一次、 FRC0不断增大、UC0在0-199999之间范围、 CPU0 = 199999、CMP0 不断增大、 几乎等于 FRC0
那么、寄存器 FRC0 CMP0 UC0 CPU0的方法是什么、 如何将这些寄存器与 syscfg 所需的输出频率和节拍周期(usesc)相关联?
此外、如何将 C2000等 RTI 寄存器配置为定时代码运行时间? (CCS 只设置时钟分频、PRD、读取 CNT)
我 参考了手册、里面的介绍非常模糊。 您能否提供一个与设置与实际现象相匹配的示例或代码
周先生、您好!
很抱歉,我今天无法调查这件事,明天我会这样做。 感谢您对设置的详细描述、我将能够尝试复制您的观察结果。
此致、
拉尔夫·雅各比
周先生、您好!
抱歉,我花了一段时间才回到你的这个帖子,但我在努力重新创建你的观察初始. 但现在我明白发生了什么。 此处的根本原因可能并不是缺少文档、而是 SysConfig 的系统设计不佳。
您正在查看的 RTI 寄存器会产生以下值:
FRC0在不断增加,UC0在0-199999之间,CPU0=199999 ,CMP0在 不断增加, 几乎等于 FRC0[/报价]是 RTI0实例的寄存器、该实例是分配给驱动程序移植层的时钟的 RTI。 此时钟默认为 RTI0 。 此时钟为 不 您要更改 SysConfig RTI 选项卡上的值的 RTI 计时器。 假设您的示例使用默认计时器、您应查看 RTI1 寄存器来观察寄存器的变化。
RTI1:
RTI0:
当您将节拍周期从1M 移动到2M 时、您将看到 RTI1 (或在计时器实例中为 RTI 分配的 RTI)中的寄存器发生变化。
至于对糟糕系统设计的评论... 我希望 RTI 实例的命名与分配是您需要的:
此致、
拉尔夫·雅各比
您好,Ralph
谢谢你。 我已经再次查看了 syscfg 的内容、似乎只有1/2/3个 RTI 实例、并且我的 RTI1寄存器具有正确的值、这与 C2000中的计时器类似。
此致
周南一