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.

[参考译文] TMS320F28379D:tms320f28379d

Guru**** 2213890 points
Other Parts Discussed in Thread: C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1169723/tms320f28379d-tms320f28379d

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARE

根据某些输入条件、我正在 if loop 中执行某些命令。现在、我希望在执行条件时有一些延迟。如何在中执行此操作  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jahangeer、

    如果您使用的是 C2000Ware DriverLib、则可以使用  SYSCTL_DELAY (uint32_t count);

    如果您使用基于位域的代码、则可以使用如下所示的代码:

    #define SYSCTRL_CLKSRCCTL1_DELAY ASM (" RPT #250 || NOP \n RPT #50 || NOP")

    此致、Santosh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是检测到我要放置一些延迟上升沿的代码

    if (GpioDataRegs.GPBDAT.bit.GPIO32 = 1)//此引脚的数据寄存器-这里检测到上升沿-此代码在正半周期内有效


    EALLOW;
    EPwm1Regs.TZFRC.bit.OST = 1;//强制执行单次触发
    EPwm1Regs.TZCTL.bit.TZA = 3;//不执行任何操作
    EPwm1Regs.TZCTL.bit.TSB = 3;//不执行任何操作
    EPwm3Regs.TZFRC.bit.OST = 1;//强制执行单次触发
    EPwm3Regs.TZCTL.bit.TZA = 3;//不执行任何操作
    EPwm3Regs.TZCTL.bit.TSB = 3;//不执行任何操作

    EPwm2Regs.TZFRC.bit.OST = 1;//强制执行单次触发
    EPwm2Regs.TZCTL.bit.TZA = 1;//强制 EPWM2A 处于高电平状态
    EPwm2Regs.TZCTL.bit.tZB =1;//强制 EPWM2B 处于高电平状态

    EPwm4Regs.TZFRC.bit.OST = 1;//强制执行单次触发
    EPwm4Regs.TZCTL.bit.TZA = 1;//强制 EPWM2A 处于高电平状态
    EPwm4Regs.TZCTL.bit.tZB =1;//强制 EPWM2B 处于高电平状态


    EDIS;
    EPwm2Regs.TBCTR = 0x0000;
    EPwm4Regs.TBCTR = 0x0000;
    EPwm1Regs.CMPA.bit.CMPA = 5000;
    EPwm1Regs.CMPB.bit.CMPB = 5000;
    EPwm3Regs.CMPA.bit.CMPA = 5000;
    EPwm3Regs.CMPB.bit.CMPB = 5000;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否查看了死区示例:

    C:/ti/c2000/C2000Ware_4_02_00_00/device_support/f2837xd/examples/cpu1/epwm_deadband