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.

TMS320F280039C: 在CLB使用中对HLC的操作疑惑

Part Number: TMS320F280039C
Other Parts Discussed in Thread: C2000WARE

 Version: 11.1.0.00011 

C:\ti\c2000\C2000Ware_4_01_00_00\driverlib\f28003x\examples\clb----clb_ex3_auxiliary_pwm例程

该例程是通过CLB产生可调占空比的PWM波!

疑问点:对例程中中断函数中CLB_setHLCRegisters(myTILE1_BASE, dutyValue, 0, 0, 0);有疑问,为什么这个函数可以直接对HLC中的R0,R1,R2进行赋值,顺序不是应该是CPU--->FIFO----->CLB的HLC的顺序,来对HCL的R0R1进行写操作嘛?

  • 你好!希望得到帮助

  • 您好,我向资深工程师询问后回复您。

  • 你好,请问是否有答案了?我产生这个疑问的主要原因是,我修改了例程,把它变成周期可调的,然后再中断中,更改R1的值,如果给的小了,CLB就会停止发波了

  • 我还没有收到回复。有了结果我会第一时间回复

  • 正如文档中提到的,CPU 可以访问 CLB 中的一些寄存器,包括 R0、R1、R2 和 R3 寄存器。 在示例 3 的设计中,由于占空比值是作为唯一要传输的值传输到计数器中与匹配条件作匹配,因此采用的方法涉及以下 HLC 和 ISR 操作(重复地):

    TRANSFER R0 VALUE INTO MATCH CONDITION -> SIGNAL HLC INTERRUPT -> (IN ISR) ASSIGN NEW DUTY VALUE INTO R0

    在您提到的应用笔记中,FIFO 用于使用 CPU -> FIFO -> HLC 这种方法同时将数据传输到加载值和匹配值。这些只是执行类似数据传输操作的两种方法,不同之处在于您一次需要传输多少数据。

x 出现错误。请重试或与管理员联系。