精华内容
下载资源
问答
  • 2021-05-18 12:51:53

    是delay to do 还是delay doing 还是delay do?还是什么啊~~ 问下

    delayvt.延期, 延缓; 推迟We decided to delay our holiday until next month.我们决定将休假延至下个月。所以应该是delay doing

    函数名: delay 功 能: 将程序的执行暂停一段时间(毫秒) 用 法: void delay(unsigned milliseconds); 程序例: /* Emits a 440-Hz tone for 500 milliseconds */ #.

    void Delay10ms(void) { unsigned char a,b,c; for(c=1;c>0;c--) for(b=38;b>0;b--) 。

    for循环呀循环1*38*130次,在最后应该有个延时函数吧,比如c++的sleep(100)啥的。

    delay,既是动词,也是名词,都有“延期”的含义。作名词时,就是:No delay,例如:No delay is allowed. (不允许延期)作动词时,就用not delay,例如:Please do .

    void delay(int z) { int x,y; for(x=0;x

    void delay(int z) //延时函数 { int x,y; //定义两16位无符号变量 for(x=0;x<125;x++) //从X=0开始,直到X=125,执行 for(y=0;y

    简单的用法

    1、delay函数是一般自己定义的一个延时函数。2、C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。下面给出一个经典的延时函数。// 定义一个延时xms.

    Delay10ms(。。。。。) main() Delay10ms(50) 第一个括号里需要什么数据? .

    ms vc++可以用mfc的sleep函数,参数是毫秒。delay函数要自己写,编译器里没有。#include // 头文件 time_t start_time, cur_time; // 变量声明 time(&start_time); .

    void Delay (unsigned int a){ unsigned int i; while( --a != 0){ for(i = 0; i

    delay函数是复一般自己定义的一个延时函数。C语言定义延时函数主要通过无意制义指令的执行来达到延时知的目的道。下面给出一个经典的延时函数。// 定义一个延时.

    无意中看到一个关于delay用法的例句:We decided to delay our holiday until .

    应该是第一种意思~delay是延迟的意思,表示比所期待的要迟一些或慢一些,也就是说是没有发生的时候用的~如果要用延长假期要用prolong,是延长,增加持续时间的意思

    及物动词 vt. 1. 延缓;使延期 2. 耽搁;延误 The accident delayed the train for two . My doctor advised me to give up smoking without delay. 我的医生劝我立即戒烟。 Heavy .

    void delay(int ms); ms为延时的毫秒数 如delay(1000);延时1秒

    跟这里如上面,我要用P2口显示一组数,想问delay()函数放在FOR语句里。

    差别太大了:如果放在for里,那么每次循环(也就是每次 i 减1)这个delay()都会执行一次;如果放在for外,那么就是等到循环结束后(也就是当 i 减到0时程序跳出循环.

    #include void delay(unsigned int i) main() { P0=0x00; delay(600); P0=0xff; .

    delay函数 功 能: 将程序的执行暂停一段时间(毫秒) (该函数是tc下特有的函数,vc下应使用sleep()函数) 用 法: void delay(unsigned milliseconds); 程序例: /* .

    一般单片机里面的延时函数没有多大用途,大的系统里都用定时器去确定时间,基本不用延时

    1. 用 法: void delay(unsigned milliseconds); 程序例:/* Emits a 440-Hz tone for 500 milliseconds */#include int main(void) { sound(440); delay(500); nosound(); return 0; }.

    delay([毫秒数]); 作用是让当前进程等待[毫秒数]

    我的delay是这么定义的, void Delay() //定义机器人调转子时间子程序 { .

    等待时间:(delay_time+1)*5T 就是 (50000+1)*5个机器周期时间。

    void delay(unsigned milliseconds);将程序的执行暂停一段时间(毫秒)(该函数是TC下特有的函数,VC下应使用Sleep()函数)

    我用FOR循环隔一段时间画一个圆~~ 要怎么实现呢?

    楼上给的是对的,不过delay是以毫秒为单位的,太快了 最好用sleep代替,是以秒为单位的

    两者都可以起到延时的作用。写delay函数做延时,利用CPU处理很多循环,。

    利用循环处理的方式实现的延时,并不精确。1、当中断发生时,CPU被打断先执行中断服务。导致执行时间变长。2、使用高级语言时,编译的结果受优化等级等多方面.

    更多相关内容
  • delay:javascript延迟功能

    2021-05-10 21:40:42
    Javascript Delay函数。 我想我做对了。 构造函数采用参数: 样品中的延迟时间 反馈水平 混合水平 bufferSize-默认为您需要的延迟时间,但可以将其设置为更大的值,以便增加延迟时间。 您可以随时更改延迟时间,...
  • STC15系列万能delay延时。为了方便51单片机在不同晶振频率下,延时函数能正常使用而打包的延时函数。改变频率后只需改变一下宏定义即可。 delay.h #ifndef _DELAY_H #define _DELAY_H //注意时钟频率设置...
  • STM32F407 HAL库添加标准库中的delay函数,HAL库中只有HAL_Delay()函数实现延时,单位是ms,要实现us延时,不像标准库中delay_us()就可以了,所以增加了这个函数,来方便标准库转移到HAL库中的朋友使用习惯。
  • delay.h头函数文件 keil5

    2021-11-16 18:29:25
    keil5 delay.h 头函数
  • 因为RK的PHY的tx/rx delay自身问题,导致同一批次或者不同批次容易产生有的机器,网口不能上网或者ping值很大.用这个可以修复. 最新原厂SDK补丁应该也有修复了.
  • stm32f103 库函数版本 delay.c
  • Tunable optical delay lines are one of the key building blocks in optical communication and microwave systems. In this work, tunable optical delay lines based on integrated grating-assisted ...
  • 导入PIN DELAY 的方法

    2018-10-31 16:16:03
    个人整理的文档,有详细的步骤。 使用于XILINX FPGA的PIN DELAY导入ALLEGRO
  • HAL 库有提供延时函数,只不过它只能实现简单的毫秒级别延时,没有实现 us 级别延时。 下面我们列出HAL 库实现延时相关的函数。首先是功能配置函数: //调用 HAL_SYSTICK_Config 函数配置每隔 1ms 中断一次 ...
  • stm32 delay.h 延时文件

    2019-01-17 17:49:33
    stm32 延迟的源代码 delay.h 包含 sys.h 使用时包含进工程目录
  • Await 处理并行任务(WhenAll)以及Task.Delay() Await 处理并行任务(WhenAll)以及Task.Delay() Await 处理并行任务(WhenAll)以及Task.Delay() Await 处理并行任务(WhenAll)以及Task.Delay()
  • STM32基于HAL库实现的Delay延时函数(兼容操作系统和裸机),一贯的精简高效,无论是否用了操作系统,都可以实现高精度的延时功能。
  • Delay - 延时控制 连续 setTimeout: setTimeout(doSomething, 1000); setTimeout(doSomething, 2000); setTimeout(doSomething, 3000); 的替代方案。 var delay = new Delay(); delay.add(1000, doSomething); ...
  • allegro高速信号添加PIN_delay的详细步骤,这是自己使用时整理出来的,可能会有不足的地方。
  • The Generalized Correlation Method for Estimation of Time Delay The Generalized Correlation Method for Estimation of Time Delay The Generalized Correlation Method for Estimation of Time Delay The ...
  • var Delay = require ( 'node-delay' ) ; // Sequentialize multiple events var delay = new Delay ( // First step (simple timer) function ( ) { setTimeout ( this . next ( ) , 2000 ) ; console . log ...
  • 80c51程序编译led灯闪烁。 内含main.c文件delay.h文件及delay.c文件。 帮助大家学习将多个函数编写进一个主函数中。
  • delay.c主函数

    2021-01-22 18:17:03
    delay函数的主函数
  • tm4c123x入门LED switch_delay代码
  • Single-Step Tunable Group Delay Phaser for Spectrum Sniffing
  • 前端开源库-await-delay

    2019-08-29 22:57:22
    前端开源库-await-delay等待延迟,使用delay/sleep异步/等待ES7
  • 通过添加该脚本可以很方便的改变特效或动画发生时间,便于制作工程中效果的确认,而无需打开粒子逐个更改时间
  • delay什么意思

    千次阅读 2021-05-20 04:46:17
    编程语言中文网今天精心准备的是《delay什么意思》,下面是详解!功放机上的DELAY是什么意思DELAY 延时的意思。这个是麦克风的混响延时调节,是用来调节话筒声音的间隔时间差,调节越大,间隔声就越长。功放上其他...

    编程语言中文网今天精心准备的是《delay什么意思》,下面是详解!

    功放机上的DELAY是什么意思

    DELAY 延时的意思。这个是麦克风的混响延时调节,是用来调节话筒声音的间隔时间差,调节越大,间隔声就越长。

    功放上其他英文提示

    REPEAT 重复次数

    ECHO-LEVEL 混响音量

    BASS低音

    MID 中音

    TREBLE高音

    SHIFT返馈

    FREQ 音调

    BOOST 重低音

    BALANCE 平衡

    EQ平衡调节

    TIM1-TIM4 时间选择

    SURR SURROUND OUT 环绕声输出

    tone 音调调节

    TAPE=磁带音乐

    Aux 辅助信号输入端子,也就是音频输入端子

    DELAYTIME 延迟时间

    AUX 辅助输入

    MUTI 多功能输入

    ATSIN 卡拉OK自动接唱

    REMOTE 遥控切换

    M1VOL是第一麦克风的音量控制, M2VOL是第二麦克风的音量控制。

    MIC.1和MIC.2分别是第一麦克风输入和第二麦克风输入。 第一个HIGH是麦克风的高音调节,第一个LOW是麦克风的低音调节。

    ECHO是麦克风的混响调节,DELAY是麦克风的延时调节 第二个HIGH是主音箱的高音量调节,第二个LOW是主音箱的低音量调节。

    BAL是平衡,用来调节左右声道的平衡度。

    ON是开机,VOL是主音箱音量,A/B/OFF是音箱选择,INPUT是音源选择。

    TCHDIRECT 7 声道直通

    AUDIO音频

    VIDEO视频

    AUTO自动选择模式,打到此模式,功放自动选择解码格式

    DSPMODE数字声场模式选择

    SURROUND MODE环绕模式选择

    STEREO立体声选择

    DIGITALINPUTS数字信号输入选择

    PLIIMUSIC PARAMETER PLII音乐模式参数设定

    CHANNEL SELECTOR 声道选择

    ADJUST 配合

    CHANNEL SELECTOR 调整各声道音量

    TONE MODE音调模式调节(高低音调节器)

    SPEAKER SETUP音箱或喇叭设置

    DYNAMIC RANGE 动态压缩调节

    CINEMAEQ 影院均衡器

    MEMO/ENTER记忆或确认键

    TUNING PRESET 收音预置

    T/P MODE收音预置/搜索转换

    FM MODE立体声/单声道转换

    BAND AM/FM波段转换

    Delay是什么意思啊??

    delay英音:[di'lei]美音:[dɪ'le]

    词典解释

    delay

    及物动词 vt.

    1. 延缓;使延期

    2. 耽搁;延误

    delay是什么意思

    delay

    延迟

    双语对照

    词典结果:

    delay[英][dɪˈleɪ][美][dɪˈle]

    n.延迟,拖延; 耽搁; 被耽搁或推迟的时间;

    vt.延期,推迟; 耽搁;

    vi.延缓,延期;

    第三人称单数:delays过去分词:delayed现在进行时:delaying过去式:delayed

    以上结果来自金山词霸

    例句:

    1.

    But the delay is excusable.

    但推迟是情有可原的。

    2.

    Delay retirement age is his only choice.

    延迟退休年龄成了他的唯一选择。

    3.

    Senior officials blame germany for the delay.

    欧盟高级官员指责德国拖延兑现承诺。

    52单片机C语言中Delay是什么意思?怎么用?

    一般延时1ms的程序是:

    void Delay(uint x)

    {

    uchar i;

    while(x--)

    {

    for(i=120;i>0;i--);

    }

    }

    那么当你在别的函数中用到Delay(10000);就是延时10000ms,也就是10S

    单片机c语言中的delay_ms(250) 是什么意思

    如果延时子函数delay_ms(1) 是1ms的话,这个就是250ms

    更多扩展补充

    扩展

    void delay_ms(uchar delay)

    {

    uchar i,j;

    for(i=0;i

    for(j=0;j<125;j++);

    }

    子程序是这样的。delay_ms(250)是不是应该延时250*125ms呀?

    补充

    不是这么长的。

    你用kiel运行一下就知道时间了。

    一步也就us级的,不可能是ms

    12M下,是0.4ms ,250就是100ms

    延时子函数最好写成1ms的

    扩展

    想请问一下 能不能说详细一点 怎样知道时间啊

    补充

    你用kiel吗?调试下,在delay(250)那里设个断点,全速运行,在断点处停下。这时看下时间(底部或左侧都有有时间)。再单步一步,看时间增加多少。

    扩展

    哦 很感谢 能不能在解释下如果晶振是12M,那个0.4ms是怎样算出来的,能不能列一下算式,非常感谢!

    补充

    这个不是汇编,没有算式,只能试验得出了。

    delay是什么意思及反义词

    delay

    英音 [ di'lei ] ; 美音 [ di'lei ]

    名词

    1.耽搁,延迟

    2.被耽搁[推迟]的事件或时间

    3.(电话讯息从接收到直播节目转播之间的)时间间隔装置

    4.【美式橄榄球】(持球队员或准备接球队员的)停顿战术,延迟动作,假动作

    动词:

    1.(使)耽搁,延误

    及物动词:

    1.推迟,使延期

    2.推迟,使延迟,使延期,延缓

    词形变化:名词:delayer;时态:delayed,delaying,delays。

    同义词:detain,stay;retard,check;detain,hold up;holdup;hold,postponement,time lag,wait。

    反义词:hurry,rush。

    单词分析:这些动词或短语动词均有“推延,延期”之意。

    delay:普通用词,多指因外界原因推迟或耽误,也可指有意推迟。

    postpone:正式用词,语气较强,多指有安排的延期,常指明延期到一定的时间。

    defer:正式用词,语气强于postpone,多指故意拖延。

    suspend:指暂时中断以待某种条件的实现。

    prolong:指把时间延长至超过正常或通常的限度。

    put off:口语用词,与postpone同义,但较通俗。

    英语句子

    To delay the journey

    延宕行期

    Unavoidably absent/delayed

    不得已而缺席[耽搁

    In fact, delayed recognition can be an advantage.

    事实上越晚被发现有时好处更多。

    The use of obstructionist tactics,especially prolonged speechmaking,for the purpose of delaying legislative action.

    议事的阻挠阻挠手段的使用,尤指作冗长的演说以达到妨碍议事进行的目的

    Others have allowed tort suits against insurers for negligent delay in acting on an application

    另一些州则允许因保险人迟迟未能对投保书采取行动而对他提起侵权之诉。

    void delay ();是什么意思啊?

    定义了一个名字为 delay ,无返回值,无参数的函数。

    安道理是一个固定时长的延时函数;一般用于单片机里面的。

    单片机:delay(100)是什么意思啊?

    delay通常是延时程序,其参数为100,一般这个参数都是delay基本延时的倍数,也就是100倍,至于基本延时时长你得给出具体程序。

    delay()是什么意思

    我是想知道在那个delay()C语言程序设计里是什么意思,可以用什么替换...

    我是想知道在那个delay()C语言程序设计里是什么意思,可以用什么替换

    延迟。

    比如说

    sound(500);

    delay(4000);

    就是让PC喇叭发出500Hz的声音,持续4秒。

    音箱机上的DELAY是什么意思

    DELAY 延时的意思。这个是麦克风的混响延时调节,是用来调节话筒声音的间隔时间差,调节越大,间隔声就越长。 音箱上其他英文提示 REPEAT 重复次数 ECHO-LEVEL 混响音量 BASS低音 ...----是音效调节器,就是让喇叭发出的声音延迟,持续4-5秒。----

    delay什么意思aa5cdbddb1156f53fc6afd78205837b4.png

    Delay组合是中国风原创组合,成员有吉他手黄迪,键盘手惠雷。2010年参加湖南卫视举办的《快乐男声》比赛,获得全国第11名。

    展开全文
  • 【音效处理】Delay/Echo 简介

    千次阅读 2022-04-01 18:42:43
    文章目录系列文章目录一、Delay 是什么二、Delay 原理2.1 Basic Delay三、总结参考 一、Delay 是什么 Delay(延迟)是一种信号处理技术,它将输入信号纪录气力啊,然后过一段时间再播放。当延迟信号与当前信号混合...

    系列文章目录



    一、Delay 是什么

    Delay(延迟)是一种信号处理技术,它将输入信号纪录起来,然后过一段时间再播放。当延迟信号与当前信号混合时,会产生类似回声(Echo)的效果。大多数人都有过在大山中大喊的经历,声音在山谷之间传递,回声余音袅袅。没错,所谓的 Echo 就是这种感觉。看下面两个对比视频,加深对 Echo 的理解:

    土拨鼠的尖叫

    土拨鼠的尖叫-Echo

    毫无疑问,Delay 是当今市场上最强大的音乐制作工具之一。我们听到的几乎所有的调制效果都是用特定的延时创造的。


    二、Delay 原理

    2.1 The Basic Delay

    最简单 Delay,即输入信号与延迟信号叠加得到输出信号,差分方程如下:
    y ( n ) = x ( n ) + x ( n − D ) (1) y(n)=x(n)+x(n-D) \tag{1} y(n)=x(n)+x(nD)(1)
    其中 D D D 为延迟时间,更准确的说,表示延迟了 D D D 个采样点。下图是(1)的块状图。

    在这里插入图片描述
    我们对(1)进行 Z 变换,以此来探究 Basic Delay 对频率的影响:
    y ( n ) = x ( n ) + x ( n − D ) Y ( z ) = X ( z ) + X ( z ) z − D = X ( z ) ( 1 + z − D ) H ( z ) = Y ( z ) X ( z ) = 1 + z − D (2) \begin{aligned} y(n) &=x(n)+x(n-D) \\ Y(z) &=X(z)+X(z) z^{-D} \\ &=X(z)\left(1+z^{-D}\right) \\ H(z) &=\frac{Y(z)}{X(z)}=1+z^{-D} \end{aligned} \tag{2} y(n)Y(z)H(z)=x(n)+x(nD)=X(z)+X(z)zD=X(z)(1+zD)=X(z)Y(z)=1+zD(2)
    H ( z ) = 1 + z − D H(z) = 1+z^{-D} H(z)=1+zD 可以推断出它没有极点,只有 D 个零点。接下来求它的零点:
    1 + z − D = 0 z − D = − 1 \begin{aligned} 1+z^{-D} = 0 \\ z^{-D} = -1 \end{aligned} 1+zD=0zD=1
    接下来就是复数次方根的求解了,这部分内容可以参考 「珂学原理」No.110「复数的n次方根」。这里就不在重复视频提到的方法,而是利用欧拉公式求解。

    z = e j ω z =e^{j \omega} z=ejω ,通过欧拉公式转换得到:
    cos ⁡ ( D ω ) + j sin ⁡ ( D ω ) = − 1 \cos (D \omega)+j \sin (D \omega)=-1 cos(Dω)+jsin(Dω)=1
    由于 − 1 -1 1 为实数,无复数部分,因此可得:
    cos ⁡ ( D ω ) = − 1 ω = ± k π D k = 1 , 3 , 5 , … , D \begin{aligned} \cos (D \omega) = -1 \\ \omega=\pm \frac{k \pi}{D} \quad k=1,3,5, \ldots, D \end{aligned} cos(Dω)=1ω=±Dkπk=1,3,5,,D
    D = 2 D=2 D=2 时, ω = ± π 2 \omega=\pm \frac{\pi}{2} ω=±2π
    D = 4 D=4 D=4 时, ω = ± π 4 , ± 3 π 4 \omega=\pm \frac{\pi}{4}, \pm \frac{3\pi}{4} ω=±4π,±43π
    D = 5 D=5 D=5 时, ω = ± π 5 , ± 3 π 5 , ± π \omega=\pm \frac{\pi}{5}, \pm \frac{3\pi}{5}, \pm \pi ω=±5π,±53π,±π
    我们发现 D 个零点是平均分布在单位元上的,不同 D 的频谱响应如下图所示。
    零点分布
    D = 32 D=32 D=32 时可以看到频谱响应像是一把梳子一样,此类滤波器也被称为“梳妆滤波器”。

    此外,我们还可以在 Audition 上使用 Basic Delay 对扫频信号进行处理,可以看到明显的梳妆特征。

    处理前:
    处理前
    处理后:
    处理后

    2.2 Delay With Feedback

    Basic Delay 只能产生单一的回声,应用比较有限。大多数 Delay 算法还会包含一个反馈控制,它将延迟后的信号以一定比例送回输入,如下图所示:
    在这里插入图片描述

    假设反馈控制那一条信号为 g ( n ) g(n) g(n),那么上图的差分方程为:
    y ( n ) = x ( n ) + g ( n ) 其中, g ( n ) = x ( n − D ) + f g ( n − D ) y(n) = x(n) + g(n)\\ \text{其中,} g(n) = x(n-D) + fg(n-D) y(n)=x(n)+g(n)其中,g(n)=x(nD)+fg(nD)
    进一步推导有:
    y ( n − D ) = x ( n − D ) + g ( n − D ) g ( n − D ) = y ( n − D ) − x ( n − D ) (3) \begin{aligned} y(n-D) &= x(n-D) + g(n-D) \\ g(n-D) &= y(n-D) - x(n-D)\\ \end{aligned}\tag{3} y(nD)g(nD)=x(nD)+g(nD)=y(nD)x(nD)(3)
    g ( n ) = x ( n − D ) + f g ( n − D ) = x ( n − D ) + f ( y ( n − D ) − x ( n − D ) ) = ( 1 − f ) x ( n − D ) + f y ( n − D ) 因此 y ( n ) = x ( n ) + g ( n ) = x ( n ) + ( 1 − f ) x ( n − D ) + f y ( n − D ) (4) \begin{aligned} g(n) &= x(n-D) + fg(n-D) \\ &= x(n-D) + f(y(n-D) - x(n-D)) \\ &= (1-f)x(n-D) + fy(n-D) \\ \text{因此} \\ y(n) &= x(n) + g(n) \\ &= x(n) + (1-f)x(n-D) + fy(n-D) \end{aligned}\tag{4} g(n)因此y(n)=x(nD)+fg(nD)=x(nD)+f(y(nD)x(nD))=(1f)x(nD)+fy(nD)=x(n)+g(n)=x(n)+(1f)x(nD)+fy(nD)(4)

    对上述差分方程进行 Z 变换得:
    Y ( z ) = X ( z ) + ( 1 − f ) z − D X ( z ) + f z − D Y ( z ) ( 1 − f z − D ) Y ( z ) = ( 1 + ( 1 − f ) z − D ) X ( z ) (5) \begin{aligned} &Y(z) = X(z) + (1-f)z^{-D}X(z) + fz^{-D}Y(z) \\ &(1-fz^{-D})Y(z) = (1+(1-f)z^{-D})X(z) \\ \end{aligned} \tag{5} Y(z)=X(z)+(1f)zDX(z)+fzDY(z)(1fzD)Y(z)=(1+(1f)zD)X(z)(5)
    H ( z ) = Y ( z ) X ( z ) = 1 + ( 1 − f ) z − D 1 − f z − D = z D + 1 − f z D − f (6) H(z) = \frac{Y(z)}{X(z)} = \frac{1+(1-f)z^{-D}}{1-fz^{-D}} = \frac{z^D + 1 - f}{z^D - f} \tag{6} H(z)=X(z)Y(z)=1fzD1+(1f)zD=zDfzD+1f(6)
    从公式(6)可知该滤波器有 D 个零点和 D 个极点,平均分布在单位圆内。再一次,复数次方根求解请参考 「珂学原理」No.110「复数的n次方根」。不同 D 值的频响曲线和零极点分布图如下:
    在这里插入图片描述

    2.3 Wet & Dry

    我们称处理后的信号为 “湿” 的信号,未经处理的信号为 “干”信号。一种更加实用的 Delay 算法将会 “湿” 信号和 “干” 信号进行 mix,并通过 Wet 和 Dry 两个系数来控制干湿比。其块状图如下:
    在这里插入图片描述

    差分方程为:
    y ( n ) = d r y ∗ x ( n ) + w e t ∗ g ( n ) (7) y(n) = dry*x(n) + wet*g(n) \tag{7} y(n)=dryx(n)+wetg(n)(7)

    z 变换推导和之前类似,不再赘述了。


    三、Delay C/C++ 实现

    说完原理,我们来说具体要如何实现。通常,Delay 使用 Delay Line 来实现,整体实现并不复杂,用一个函数就可以简单概况:

    void process(AudioBuffer<float> *buffer,
                int delay_samples, float feedback, float dry, float wet) {
    
        for (size_t c = 0; c < buffer->getNumberChannels(); ++c) {
            float *channel = buffer->getWriterPointer(c);
            auto *dline = dlines_.getDelayLine(c);
            
            for (size_t i = 0; i < buffer->getNumberFrames(); ++i) {
                float in = channel[i];
                float d_y = dline->get(delay_samples);
                float d_x = in + feedback * d_y;
    
                dline->push(d_x);
    
                channel[i] = dry * in + wet * d_y;
            }
        }
    }
    

    上述代码中:

    1. buffer->getWriterPointer(c)dlines_.getDelayLine(c) ,分别获取当前声道数据和当前声道所使用的 Delay Line
    2. 在第二个 for 循环中,实现了公式(7)中的代码

    具体更细节的代码内容请参考 Libaa - Delay


    总结

    以上就是今天的全部内容,我们首先介绍了 Delay 是什么,它可以产生 Echo,用于音效制作上;接着介绍了 Delay 的数学原理,从 Basic Delay 逐步发展到最终版本 Delay with Dry&Wet;最后还给出了 Delay 的 C/C++ 实现代码。


    参考

    展开全文
  • I/O Delay约束主要有两个命令:set_input_delay和set_output_delay。 I/O Delay约束的主要目的同时钟约束一样,是告诉编译器,外部输入输出信号与参考时钟之间的相位关系,便于综合器能够真实和准确的对IO接口的信号...

    前言

    I/O Delay约束主要有两个命令:set_input_delay和set_output_delay。

    I/O Delay约束的主要目的同时钟约束一样,是告诉编译器,外部输入输出信号与参考时钟之间的相位关系,便于综合器能够真实和准确的对IO接口的信号进行时序分析,同时也有利于综合器的布局布线。

    注意:I/O Delay约束和 IDELAYE、ODELAYE原语是完全不同的,前者是用于编译器进行时序分析的,后者是对数据进行延时的(由于建立时间和保持时间不满足,导致在接收数据有错时,需要对数据进行延迟,以满足建立时间和保持时间)。换言之,前者是时序分析手段,后者是电路调试手段。

    一、input delay

    输入信号是在时钟沿后多长时间到达模块的port上

    "set_input_delay"命令是用于指定输入端口(PIN)的数据输入相对于设计中参考时钟边沿的延迟。 输入延迟值以ns为指定单位,可以为正值,也可以为负值,具体取决于设备接口处的时钟和数据的相对相位关系。

    这里特别强调的是FPGA芯片的PIN到内部IOB是有pin delay的,但是set_input_delay指定的延迟是不包含pin delay的值。即set_input_delay所指的延迟是下图中Tco+td_bd-Tc_d-tc_bd的值。
    在这里插入图片描述
    说明:
    上图为IO接口的时序分析模型,模型可分为3部分,分别是上游芯片,PCB走线,下游芯片(这里主要指FPGA)。上图中的时序参数含义分别如下:

    时序参数含义
    Tco上游芯片输出数据管脚相较于扇出节点时钟发射沿延时
    Tc_d上游器件输出管脚处时钟,相较于扇出节点时钟延时
    Td_bd数据在PCB上的走线延时
    Tc_bd时钟在PCB上的走线延时
    pin_delayFPGA的封装引脚pin到内部IOB的延迟
    Td_fiFPGA内部数据通路上,IOB到FPGA内部D触发器的路径延迟
    Tc_fiFPGA内部随路时钟通路上,IOB到FPGA内部D触发set_input_delayinput_delay

    二、set_input_delay语法

    set_input_delay  [-clock <args>] [-reference_pin <args>] [-clock_fall] [-rise]
                     [-fall] [-max] [-min] [-add_delay] [-network_latency_included]
                     [-source_latency_included] [-quiet] [-verbose] <delay>
                     <objects>
    
    选项含义
    -clock相对时钟,默认使用上升沿,也可以使用-clock_fall指定使用下降沿
    -reference_pin指定延迟与出现在指定引脚或端口上的时钟的有效边沿有关,而不是与时钟有关。
    -clock_fall指定延迟是相对于时钟的下降沿
    -rise指定应用于指定端口上的上升转换的输入延迟。 默认是对上升和下降转换应用延迟(用于指定数据的,非时钟的)。
    -fall指定应用于指定端口上的下降转换的输入延迟。 默认是对上升和下降转换应用延迟(用于指定数据的,非时钟的)。
    -max表示指定的输入延迟仅在计算最大(最长)路径延迟时使用(建立时间)。
    -min表示指定的输入延迟仅在计算最小(最短)路径延迟时使用(保持时间)。
    -add_delay将指定的延迟约束添加到端口,以与端口上已定义的任何其他 set_input_delay 约束共存。 默认行为是替换现有的延迟。
    -network_latency_included表示参考时钟的时钟网络延迟包含在延迟值中。 除非指定的输入或输出延迟值包括源延迟或网络延迟,否则 Vivado 时序分析器会考虑在时钟延迟之后到达捕获触发器的时钟边沿。
    -source_latency_included指示相对时钟的源延迟包含在指定的延迟值中。
    -quiet忽略命令错误
    -verbose命令执行期间暂停消息限制
    delay延时值
    objects端口列表

    三、用法举例

    示例一: 创建一个时钟周期为10ns的sysClk 时钟,然后设定端口DIN相对于时钟sysClk 上升沿的最大和最小延迟为2ns:

    create_clock -name sysClk -period 10 [get_ports CLK0]
    set_input_delay -clock sysClk 2 [get_ports DIN]
    

    示例二: 创建一个虚拟时钟clk_port_virt ,周期为10ns,然后设定端口DIN相对于时钟clk_port_virt 下降沿的最大和最小延迟为2ns:

     create_clock -name clk_port_virt -period 10
     set_input_delay -clock_fall -clock clk_port_virt 2 [get_ports DIN]
    

    示例三: 定义输入端口reset相对于wbClk_IBUF_BUFG_inst/O输出的时钟的输入延迟为2ns,其中wbClk_IBUF_BUFG_inst/O输出时钟的时钟源为wbClk:

    set_input_delay -clock wbClk 2 -reference_pin [get_pin wbClk_IBUF_BUFG_inst/O] reset  
    

    示例四: 定义输入端口DIN相对时钟sysClk不同的相对延迟,用于最大路径分析和最小路径分析:

    create_clock -name sysClk -period 10 [get_ports CLK0]
    set_input_delay -clock sysClk -max 4 [get_ports DIN]
    set_input_delay -clock sysClk -min 1 [get_ports DIN]
    

    示例五: 限制I/O端口之间的纯组合逻辑路径,首先定义一个虚拟时钟,用于约束输入和输出延迟,例如设定DIN端口到DOUT端口的纯组合逻辑的延迟为5ns(10ns-1ns-4ns):

    create_clock -name sysClk -period 10 [get_ports CLK0]
    set_input_delay -clock sysClk 4 [get_ports DIN]
    set_output_delay -clock sysClk 1 [get_ports DOUT]
    

    示例六: DDR数据的input delay约束:

    create_clock -name clk_ddr -period 6 [get_ports DDR_CLK_IN]
    set_input_delay -clock clk_ddr -max 2.1 [get_ports DDR_IN]
     set_input_delay -clock clk_ddr -max 1.9 [get_ports DDR_IN] -clock_fall -add_delay
     set_input_delay -clock clk_ddr -min 0.9 [get_ports DDR_IN]
     set_input_delay -clock clk_ddr -min 1.1 [get_ports DDR_IN] -clock_fall -add_delay
    

    示例七: 对STARTUPE3 内部pin(UltraScale+器件)的input delay约束:

    //重命名STARTUP/CCLK自动衍生的时钟名为clk_sck,时钟源为axi_quad_spi_0/ext_spi_clk,频率为时钟源的1/2
    create_generated_clock -name clk_sck -source [get_pins -hierarchical *axi_quad_spi_0/ext_spi_clk] [get_pins STARTUP/CCLK] -edges {3 5 7}
    set_input_delay -clock clk_sck -max 7 [get_pins STARTUP/DATA_IN[*]] -clock_fall
    set_input_delay -clock clk_sck -min 1 [get_pins STARTUP/DATA_IN[*]] -clock_fall
    

    四、实操演示

    以SiI9293 MHL/HDMI接收器芯片为例,利用vivado的时序约束向导进行input delay约束,下图为硬件环境模型:
    在这里插入图片描述
    通过查阅SiI9293的芯片资料手册,可以获取芯片并行数据输出接口Q和随路时钟ODCK之间的时序关系:
    在这里插入图片描述
    时序约束中假设PCB布线等长时间差很小,可以忽略不计,由上可知在148.5MHz的频率下,数据在时钟上升沿前4.2ns稳定,并在时钟上升沿后的0.4ns后,开始输出下一个并行数据,结合vivado的时序约束向导中的input delays 页面,进行输入延时约束:
    在这里插入图片描述
    界面中tco_min对应的延时值为手册中的Tck2out(min),tco_max 对应芯片手册中的Tck2out(max)
    vivado的时序约束向导中的input delays约束方法2:
    在这里插入图片描述
    界面中dv_bre对应的延时值为手册中的Tsu,dv_are 对应芯片手册中的Thd
    XDC约束语法如下:

    set_input_delay -clock [get_clocks {sli9293_odck}] -min 0.4 [get_ports {sli9293_q[*]}]
    set_input_delay -clock [get_clocks {sli9293_odck}] -max 2.534 [get_ports {sli9293_q[*]}]
    

    五、总结

    min = hold time
    max = T - setup time
    max - min = 数据抖动时间

    展开全文
  • delay函数 delay() c语言延迟函数

    千次阅读 2021-05-18 12:51:49
    51单片机C语言中delay函数是怎么定义和使用的?很多时候我们看别人的故事哀其不幸恨其不争等到发现在自己身上好像突然就明白了别人的道理。void Delay (unsigned int a){ unsigned int i; while( a 。= 0){ for(定义...
  • delay是什么意思(单片机中delay)

    千次阅读 2021-05-20 04:46:19
    DELAY 延时的意思。这个是麦克风的混响延时调节,是用来调节话筒声音的间隔时间差,调节越大,间隔声就越长。 功放上其他英文提示 REPEAT 重复次数 ECHO-.一般延时抄1ms的程序是:void Delay(uint x) { uchar i; ...
  • 精准延时 delay.c文件 delay.h文件 void delay_us(u16 us); void delay_ms(u16 ms); void delay_s(u16 s);
  • delay中文是什么意思delay 英[dɪˈleɪ] 美[dɪˈle]n. 耽搁; 延迟,拖延; 被耽搁或推迟的时间;vt. 耽搁; 延期,推迟;vi. 延缓,延期;[例句]For sentimental reasons I wanted to delay my departure until June...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 488,482
精华内容 195,392
关键字:

delay