主题中讨论的其他器件:SysConfig
如何配置 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)