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.
根据某些输入条件、我正在 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