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 }