ZHCU677C June 2019 – July 2022
DAB 项目由两个 ISR(ISR1 和 ISR2)组成,其中 ISR1 是速度最快且不可嵌套的 ISR。ISR1 被保留用于控制环路和 PWM 更新。ISR1 由 PRIM_LEG1_PWM_BASE → EPWM_INT_TBCTR_U_CMPC 事件触发。
以下是与此 ISR 相关的定义:
#define DAB_ISR1_PERIPHERAL_TRIG_BASE DAB_PRIM_LEG1_PWM_BASE
#define DAB_ISR1_TRIG INT_EPWM1
#define DAB_ISR1_PIE_GROUP INTERRUPT_ACK_GROUP3
#define DAB_ISR1_TRIG_CLA CLA_TRIGGER_EPWM1INT
ISR2 由 CPU 计时器 INT 触发,而 CPU 计时器 INT 由 CPU 计时器的溢出发起。ISR2 为命令参考运行压摆率功能。
#define DAB_ISR2_TIMEBASE CLLLC_TASKC_CPUTIMER_BASE
#define DAB_ISR2_TRIG INT_TINT2
另外,CPU 计时器用于触发慢速后台任务(这些任务均不由中断驱动,而是采用轮询方式)。“A”任务在 TASKA_FREQ(即 100Hz)时触发。必须以此速率调用 SFRA GUI。以这一速率执行一个任务 A1。“B”任务在 TASKB_FREQ(即 10Hz)时触发。这些任务用于一些基本的 LED 切换和不是时间关键型的状态机项目。B1、B2 和 B3 这三个任务都是以此为目的。
图 4-6 展示了 ISR 软件图。