TMS570LS3137-EP: 采用双ECMP ,hr_lr=HIGH, 无法实现脉宽100ms,周期为1s的PWM波输出,同时也无法进入捕获中断

Part Number: TMS570LS3137-EP
Other Parts Discussed in Thread: TMS570LS3137

;=============================================================================
; het_pps_program_optimized.het
; 目标: TMS570LS3137, HET1 80MHz, HR ON, LR prescale /4 → LRP=50ns
; 引脚: NHET1[5] = 本地PPS输出, NHET1[1] = 参考PPS输入
;=============================================================================

;----- 常量定义 (LRP=50ns) -----
PPS_PERIOD  .equ 20000000          ; 1s 周期 = 20M LRP
PPS_PULSE   .equ 2000000           ; 100ms 脉宽 = 2M LRP
PPS_OUT_PIN .equ 5                 ; 本地输出
PPS_REF_PIN .equ 1                 ; 参考输入

;=============================================================================
; L00: 主时基计数器 (CNT)
;      reg=A: 统一时基
;      max=PPS_PERIOD: 1秒周期
;=============================================================================
L00      CNT      { reg=A, irq=OFF, max=PPS_PERIOD, data=PPS_PERIOD }

;=============================================================================
; L01: 本地PPS上升沿 (ECMP)
;      比较值由 L02 (MOV64) 动态更新,初始为0
;      匹配时置高 N2HET1[5]
;=============================================================================
L01      ECMP     { reg=A, irq=OFF, hr_lr=HIGH, en_pin_action=ON,
                    pin=PPS_OUT_PIN, action=SET,
                    next=L02, cond_addr=L02, data=0, hr_data=0 }

;=============================================================================
; L02: 远程更新 L01 (MOV64)
;      程序顺序执行,若无远程请求则立即通过
;=============================================================================
L02      MOV64    { remote=L01, comp_mode=ECMP, reg=A, en_pin_action=ON,
                    next=L03, cond_addr=L03, pin=PPS_OUT_PIN, action=SET,
                    data=0, hr_data=0 }

;=============================================================================
; L03: 本地PPS下降沿 (ECMP)
;      比较值由 L04 (MOV64) 动态更新,初始为0
;      匹配时清零 N2HET1[5]
;=============================================================================
L03      ECMP     { reg=A, irq=OFF, hr_lr=HIGH, en_pin_action=ON,
                    pin=PPS_OUT_PIN, action=CLR,
                    next=L04, cond_addr=L04, data=0, hr_data=0 }

;=============================================================================
; L04: 远程更新 L03 (MOV64)
;=============================================================================
L04      MOV64    { remote=L03, comp_mode=ECMP, reg=A, en_pin_action=ON,
                    next=L05, cond_addr=L05, pin=PPS_OUT_PIN, action=CLR,
                    data=0, hr_data=0 }

;=============================================================================
; L05: 参考PPS上升沿捕获 (WCAP)
;      捕获时触发中断 (irq=ON)
;=============================================================================
L05      WCAP     { reg=A, irq=ON, hr_lr=HIGH, pin=PPS_REF_PIN,
                    event=RISE, next=L06, cond_addr=L06, data=0, hr_data=0 }

;=============================================================================
; L06: 无条件跳回主循环
;=============================================================================
L06      BR       { next=L00, cond_addr=L00, event=NOCOND }