工具与软件:
我正在尝试在2个引脚上生成 PWM 信号、但第2个引脚请求无法在我创建的一个引脚中生成、但使用 HTURAM 无法生成另一个引脚。 HET 代码如下所述。
PWM_PERIOD .equ 4.
PWM_PIN_num1 .equ 9;第一个 PWM 引脚编号
PWM_PIN_num2 .equ 10;第二个 PWM 引脚编号
INIT_COMPARE1 .equ 2;第一个引脚的初始比较值
INIT_COMPARE2 .equ 3;第二个引脚的初始比较值
init_HR_delay .equ 120
;用于生成虚拟计数器的计数器指令
l00 CNT{reqnum=0、request=GENREQ、reg=A、irq=off、max=PWM_period};
;第一个 PWM 引脚的 ECMP 设置
L01 ECMP{next=l04、hr_lr=高电平、en_pin_action=on、cond_addr=L02、pin=PWM_PIN_num1、action=PULSELO、reg=A、IRQ=off、data=init_COMPARE1、hr_data=init_HR_delay};
;第一个引脚的 MOV32指令
L02 MOV32{REMOTE=L01、TYPE=IMTOREG&REM、reg=none、data=init_COMPARE1、hr_data=init_HR_delay};
;第二个 PWM 引脚的 ECMP 设置
L03 ECMP{next=l06、hr_lr=高电平、en_pin_action=on、cond_addr=L05、pin=PWM_PIN_num2、action=PULSELO、reg=A、IRQ=off、data=init_COMPARE2、hr_data=init_HR_delay};
;第二个引脚的 MOV32指令
L04 MOV32{REMOTE=L03、type=IMTOREG&REM、reg=none、data=init_COMPARE2、hr_data=init_HR_delay};
;跳转到下一条指令
L05 BR{next=L00、cond_addr=L00、event=NOCOND};
;跳回 PWM 设置的开始
L06 BR{next=L03、cond_addr=L03、event=NOCOND};