只有一个 VINDEX 寄存器,并且每次接收到触发信号时值都会被覆盖。这意味着用户无法将具有唯一 VINDEX 值的多个触发事件排队。但是,DDS 可以多次重复使用存储的 VINDEX 值。例如,如果 DDS_BURST=3,则单个触发事件会播放特定波形 4 次。下面详细说明了该示例的操作:
- 假设 DDS 正在等待触发且 DDS_SYM[0]=0(非对称模式)。
- 假设 DDS_VEC[80].VTRIG_MODE=1。
- TRIG[0] 上升,其中 TRIG[4:1]=5。DDS 设置 VINDEX=5*16=80。DDS 开始播放矢量 80(使用一次触发,并且因为 DDS_BURST=3,3 个触发事件排队)。
- DDS 播放矢量 80 至 83。
- DDS_VEC[83].LAST_VEC=1,因此 DDS 跳转到 DDS_VEC[VINDEX](这是矢量 80,因为 VINDEX 尚未更改)。由于 DDS_VEC[80].VTRIG_MODE=1,因此从队列中删除了一个触发事件。
- 矢量 80 至 83 共播放 4 次(播放中间隔为零)。第四次播放后,触发队列为空,因此 DDS 停止(静音)并再次等待触发。