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.

事件滤波的作用



 ADDB AL, #3          

  MOV  @_EPwm2Regs.DCFWINDOW, AL 

  MOVW  DP,#_EPwm3Regs.DCFWINDOW
  MOV  @_EPwm3Regs.DCFWINDOW, AL

事件滤波是不要有事件延迟触发的作用?

  • 而其它PWM2 模块输出在一个适当的死区时间窗口后被拉至高电平(dbAtoP)——是不是实现这句话的作用?

  • TI的员工不上班就没有人答复了 o(╯□╰)o

  •  ADDB AL, #3   这句话好像也没有什么作用

  • SR2_2:
      MOVW  DP,#_Comp1Regs.DACCTL
      MOV  @_Comp1Regs.DACCTL, #4   
      MOV  @_Comp1Regs.DACCTL, #5   

      MOVW  DP,#_EPwm4Regs.AQCTLA  
      MOV  @_EPwm4Regs.AQCTLA, #0x0201  
      MOV  @_EPwm4Regs.AQCTLB, #0x0002  

      NOP  
      NOP
      NOP  
      NOP
      NOP  
      NOP
      NOP  
      NOP
      NOP  
      NOP
      NOP 
      NOP
      NOP  
      NOP

      NOP
      NOP
      NOP
      NOP

    ;  MOVW  DP,#(AQCTLA4>>6)  
      MOV  @_EPwm4Regs.AQCTLA, #0x0200  

      MOVW  DP,#_EPwm2Regs.TZCTL   
      OR  @_EPwm2Regs.TZCLR, #0x4   
      MOV  @_EPwm2Regs.TZCTL, #0x0FFB  

      MOV  @_EPwm2Regs.AQCTLB, #0x0215  
      MOV  @_EPwm2Regs.AQCTLA, #0x0124  

    ;  LB  Aft2_0

    Aft2_0: .ref _dbAtoP_leg
      MOVW DP, #(_dbAtoP_leg)
      MOV  AH, @(_dbAtoP_leg)  
      .ref _dbPtoA_leg
      MOVW DP, #(_dbPtoA_leg)
      MOV  AL, @(_dbPtoA_leg) 

      MOVW  DP,#_EPwm2Regs.CMPB
      MOV  @_EPwm2Regs.CMPA.half.CMPA, AH   ; dbAtoP_leg
      MOV  @_EPwm2Regs.CMPB, #(PWM_PRD+10)

      ADDB AL, #3      

      MOV  @_EPwm2Regs.DCFWINDOW, AL 

      MOVW  DP,#_EPwm4Regs.DCFWINDOW
      MOV  @_EPwm4Regs.DCFWINDOW, AL   

      .ref _SR_DB
      MOVW DP, #(_SR_DB)
      ADD  AL, @(_SR_DB)

      MOVW  DP,#_EPwm4Regs.CMPB

      MOV  @_EPwm4Regs.CMPB, AL    
      MOV  @_EPwm4Regs.CMPA.half.CMPA, #(PWM_PRD+10)

    请问一下:

    1.这些NOP在这里起什么作用?

    2.SR_DB修改他的值好像也没有什么作用

  • DCFOFFSET 中,有事件发生,会触发事件吗?

  • 1,NOP作用是延时一段时间后,程序把PWM信号直接修改输出电平并立即起作用

    2,SR_DB的值将会改变PWM4B的脉冲宽度

  • 立即起作用?

    这里定义的关系?(*ePWM[n+3]).TBCTL.bit.PRDLD = TB_IMMEDIATE;

    MOV @_EPwm4Regs.AQCTLB, #0x0021
    MOV @_EPwm4Regs.AQCTLA, #0x0002

    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP

    NOP
    NOP
    NOP
    NOP

    MOV @_EPwm4Regs.AQCTLB, #0x0020

    经过NOP后,重新定义了AQCTLB.ZRO从Clear到do nothing

    这些语句是为下一个ISR做准备的,动作的优先级也是后面的优先,那前面的设置有什么用呢?