Thread 中讨论的其他器件:SYSBIOS
工具与软件:
使用.cla flie 中的 cla1forcetask7、而 cla1Task7对 i32count 工作正在更改。
但 GPIO48和 EPWM7.CMPB 没有被设置,且 cnt 没有.c flie 中的值,
为什么这些寄存器无法 在.CLA 文件中进行读写?
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.
工具与软件:
使用.cla flie 中的 cla1forcetask7、而 cla1Task7对 i32count 工作正在更改。
但 GPIO48和 EPWM7.CMPB 没有被设置,且 cnt 没有.c flie 中的值,
为什么这些寄存器无法 在.CLA 文件中进行读写?
您好、Jane:
CLA 文件中的 CLA 代码无法执行您在此处所示的位字段访问。 相反、您应该使用 HWREG 线路访问寄存器位字段、如下例所示:
这种 HWREG 访问是可以的、因为该功能在 hw_types.h 文件中定义、可以为 CLA 编译(如果在工程设置中将工程指定为 CLA 工程)。 如果您从示例 CLA 项目开始、该项目 已经配置好。
此致、
Delaney
尊敬的 Delaney:
感谢您的帮助。
它似乎不起作用。
我们 需要在 share.cla 文件中设置 EPWM7Regs.AQCSFRC.all = 5。
首先,我们设置
int32 * tt = 0X004649;在.c 文件中定义。
如您所说、 在 share.cla 文件中的 cal1task1 ()中、
HWREG( tt )=5;
cal1task1() 正在运行。 但 AQCSFRC 仍然= 0 ,它也不起作用。
你能指出出什么问题吗?
顺便说一下、我们使用 SYS/BIOS、这会影响.CLA 来读取/写入寄存器吗?
您好、Jane:
由于 AQCSFRC 是16位寄存器、因此您应该改用 HWREGH。 您可以尝试在.cla 文件中使用以下行吗:
HWREGH(EPWM7_BASE + EPWM_O_AQCSFRC) = 5;
如果更容易的话、您还应该能够从 epwm.h 文件中直接调用任何内联 driverlib 函数。
顺便说一句、我们使用 SYS/BIOS、这会影响.CLA 读写寄存器吗?
我不相信、但让我让 SysBIOS 专家来评论。
此致、
Delaney