工具/软件:
大家好:
我目前正在使用 TMS570LS3137微控制器上的 N2HET 外设。 在查看技术参考手册以了解 N2HET 模块的功能后、我探讨了 HALCoGen 生成的代码、以了解如何实现 PWM 和其他时序功能。 但是、我遇到了一个无法理解的部分。
具体而言、pwmStart
该函数中使用了以下代码:
void pwmStart (hetRAMBASE-t * hetRAM、Uint32 PWM)
{
hetRAM->Instruction[(PWM << 1U)+ 41U].Control |= 0x00400000U;
}
我试图理解表达式背后的逻辑[(pwm << 1U) + 41U]
。 我假设pwm
参数指的是特定的 PWM 通道、但我找不到明确的文档来解释为什么索引计算是以这种方式完成的、或者它如何映射到用于控制 N2HET RAM 中 PWM 行为的实际指令。
此外、我想详细了解如何确定用于启动/停止 PWM 或读取边沿计数器等操作的 HET 指令索引。 本参考手册提供了说明详情、但似乎没有说明如何组织或访问这些信息。
有人能解释一下:
-
如何
(pwm << 1U) + 41U
确定指令索引(例如)? -
PWM 通道和指令 RAM 位置之间的这种映射是在哪里定义的?
-
如何与 N2HET 指令集正确连接、以执行启动/停止 PWM 或读取计数器等操作?
非常希望对文档/示例作出任何澄清或指出。
提前感谢!