粉丝981获赞4590

这节课我们一起来学习一下 delete 延迟模块,该模块的功能呢,就是延迟一个或多个周期在输出。我们先看一下这个模块它在哪里啊? 这是我们的通用 simulink 库啊,在这一栏里面啊,这一栏里面这一个啊,这一个是 delay, 大家仔细看,这模块呢,它是 z 负一,其实呢,这个呢是一个,嗯,我们把它加载到啊,加载到模型里面去。 好,加起来之后呢,我们看一看,这个呢, delete 是 z 负一,是单位延迟啊,当然啦,我们还可以这么啊,这么写啊,双击啊,然后 d e l, 哎喂啊,然后这样呢,也有一个 dele 啊,我们看一看啊,但是呢,你这样写的这个音,嗯,导入的这个 dele 呢是呃两个延迟单位的啊,两个延迟单位,这个那里面 搞过来呢,是一个颜色,只有这这一个地方的区别,其他的呢,这里面的配置呢,都是一模一样的。好,我们就把原来这个给删掉啊,这是我们加载过来的,这个我们得类,我们把它放到这来。好了,我们先看一下仿真效果啊, ctrl 加 t 啊,仿真完了,好了,因为呢,这个它是有一个动态效果,所以呢,我们呃,今天用 scope 来看这个,来看这个,呃波形的变化啊,双击我们可以看到, 呃,我这个为了显示的更直观,我这个不长呢,就是呃一呃一秒啊,设置成一秒,我们可以看到, 当你单位延迟的时候啊,他就是在零到一秒内啊,还是输出的是零,相当于这个二点三没有输出,但是一秒之后啊,看到吗,从一秒开始,他输出的这个结果就全部都是 啊这个字啊,因此他就实现了延迟啊, delay, 就是延迟一个周期,看到没,他的延迟一个周期在输出。 好,这是他的基本功能,我们已经看已经,呃,已经掌握了,然后呢我们双击看看他的具体的啊,具体的。 好,我们看他有两个, 一个是主要对话框,还有一个状态属性对话框啊,先看主要的,主要的呢,这里面有一个延迟长度啊,这个呢,你看他就是一就是延迟一个周期啊,如果我写二,大家自己看,然后应用我应用,你看这个地方就是 z 发,这就是 延迟两个啊,如果你延迟啊,五个啊,延迟五个啊,就变成 z 负五啊,延迟五个啊,一般的话就,嗯,根据自己的需要看延迟几个啊,我们一般用延迟一个吧。好, 这是延迟一个,然后呢还有一个初始条件,初始条件是什么意思呢?就说,呃,当你,你看你延迟一个的时候,那么第一个周期他不输出你的输入输入值,但是输出的是谁呢?输出,输出的是初始值。呃,我们看到 我们刚才发现这个波形啊,这波波形初始值是零,相当于我们这里面输出出的是初始值,初始值那是零,我们为了方便举例啊,我们这里改一下,我初始值是一点五啊,一点五,我点击应用啊,确定,然后我做一下仿真, 哎,我们看零到一秒内,你看初始值就是一点五啊,这样啊,这两个就掌握了,这个呢是延迟的深度啊,这个呢是初始条件。好,下面呢还有 下面这个呢,有算法一个框,这里呢我们用的比较少啊,这个就不讲解了,他输入呢有做裁样,我们默认的都是按基于裁样进行处理的啊。还有一个下面有一个空键啊,空键的话,呃是相当,这个相当于你这个得类显示 使能窗口啊,就相当于给大家看他又多了一个输入,相当于你这个延迟呢,是要被使能的,比如说输入一的时候他才是使能啊,输入零的时候你这个延迟就这个整个这个,这这个呃模型啊,就 就不输出啊,或者是输出的就是他的那个初始值啊,初始值就相当于,嗯,呃,加了一个 in 内部,呃, in 内部模块, 其实啊这个模式和我给大家举个例子啊,其实这个模式和这样 是一个例一,嗯,是是一个,是一个功能。你说刚才的那个和你现在的这个,我把这里面这个 delete 是用一个 unitable 来使能,其实这个是效果是 一模一样的哈,好。 呃,还有一个外部重置,这个呢用的很少啊,我用的很少,就是就不用了。然后这里还有一个状态属性,这个是什么呢? 呃,这个就是生成代码的时候,你这个他这个 z, 呃延迟模块,他会生成,呃一个状态变量,然后这个状态变量如果你不,你不,你不声明,那么他就使用系统自带的啊,系统自带的,自己生成的。 然后你如果有一个状具体的状态名,那么在生成代码的时候呢,就是你这个你起的这个名字啊,啊,这个呢就是在生成代码的时候会有用。好,还有一个我们这里讲的是一个数值, 然后进行延迟。此外呢啊,比如给大家说一下,如果你这里面其实他是可以满足矩阵的,我给大家说一下一啊一,嗯,二三就是二。一个二乘二的矩阵啊,一个二乘二的矩阵。我看一下啊, 你看一个二乘以二的矩阵其实也可以用得类啊,效果是一一样的,相当于四个元素,然后,呃,用同一个得类。哎呀,用同一个得类啊,呃,是这样的,我们来看一下这个, 你看同时呢,在这四个元素用了同一个得类,同时在第一个,呃,因为你你这个延迟深度是一啊,在第一个周期啊,他输出的呢?都是一点五啊,都是一点五。 呃,这四个字,你看这四个字输出的时候零到一秒内都是呃一点五。这几 我们主要讲解 delete 延迟模块,然后实现一个或多个周期的延迟输出。

我们接着往下看,我们看一下延时函数,延时函数呢,顾名思义,它就是利用占用我们 cpu 的一个时间来起到一个延时,因为我们 cpu 呢,发电机还有往下执行程序 执行的过程当中,在这个地方,我们让 ccpu 呢不断的循环在这个地方,然后他就不会不会执行下面的了,这个时候就相当于提到了一个延时, 大家是不是已经对这个延迟呢有一个了解了,他就是占用我们这个 cpu 的一个执行过程了,他就是让他一直在这里循环,循环的话,那么他 cpu 执行过程当中呢,他会有时间, 所以他在这里会有一个延时的作用。那么当我们这个 i 呢等于一的时候呢?我们通常这个延时函数呢,大约是十微秒的,也就是 i 等于这里进行一次,但是 这个延时时间是不准确的,这是通过我们一个不要循环来起到延时,如果大家以后要用精确的一个延时的话,可以使用我们单边机内部的一个计时器。



学单面机找夏老师。大家好,我是夏老师。 我们学习了函数,那么我们现在就尝试用函数来写一个延迟来代替这个 w i 减减。 首先我们写一个无返回值,无参数的一个延迟函数,我们学过无返回值,是不是首先就是 w 调成英文绊脚 ctrl 加空格 red, 然后就是函数明题类杠,我写一个延迟五百毫秒的函数 五百毫秒 ms, 然后挂号无符号,无参数,那么我们挂号里面就写空,就不写就行了。 然后大挂号,大挂号里面所写的内容就是我们的函数题。 首先我们在我们函数里面定义一个局部变量,在函数里面定义的变量都是局部变量啊,把它定义成一个无符号整形,我们看一下数据类型的定义,无符号整形就是优硬的幺六,有 nt 幺六,这个就是无法整形啊,现在以后我们都用这个别名啊,因为这个太不地范,已经把我们定义了,定一个变量 i, 然后下面 我就直接写啊,等一下我来给大家解释这个语句,这里用到一个复语句,然后复挂号,哎,等于三五四三四 封号挨大于零封号,挨减减封号,这个是我经过测试啊,这个值就可以实现一个五百毫秒的一个延迟时间, 那么这个就是一个函数啊,无返回值,无参数的函数。我们再来看一下这个就是我们的函数的定义,然后我们要使用这个函数,我们这个函数的位置放在我们的慢函数下面,是不是 麦还在下面,那么我们就一定要给他声明才可以使用,如果不声明他可能就会爆错,我们先编一下,试一下 提示一个警告,我们先不声明啊,我们直接调用,现在已经有警告了啊,看他怎么提示, 我们下面就来使用这个函数,这个我 就保留不动,然后复制一下, 我们现在就要用这个函数来代替这个延迟, 那么这个就不要了,这里直接就用 这个函数,就直接这样子就可以用了啊,然后这里注视 一下金振十一点零五九二兆赫兹, 延迟五百毫秒,这都注视一下,然后这里也要删掉这个延迟替换掉。 好,我们编一下,看一下他有没有爆错啊,看,就已经爆错了啊, 程序都已经不能变异成功了,这个原因就是我们这个函数啊,这个函数他没有声明,然后他就已经找不到这个函数了啊,然后我们就要一种是把 把这个函数剪切放在慢函数前面,那么就可以不用, 然后一个报错啊,一个警告,我们看一下,哎, 提示,我们这个变量有定义,但是没有使用啊,我们看一下双击这个警告啊,他意思就是这个,哎, 我们定义了他,但是我们在程序里面没有用他,因为之前我们这个 i 就用在这里啊,有用,但是到我们这里改了过后就屏蔽掉了,就没有用,所以他提示的就是这个 i 啊,没有用啊, 我们把它注视掉,我们再来编一下,好,零个错误,零个警告,那么这样的话, 我们呢函数放在程序的前面,那么我们就可以不用声明了啊,我们到我们的桌面,我们打开摄像头,打开下载软件, 能启动一下,好,已经工作了啊,回答程序, 然后我们一般不这么写啊,我们一般要放在下面好一点啊,然后给他做一个函数的森林剪切,我们就放在下面。函数的 声明就是直接把这个复制过去啊,然后把它复制在这里, 声明的时候要有封号结尾啊,编一下自动导入程序, 然后我就能启动了啊,这个其实不用看啊,这个是蜂鸣剂发声,直接听就可以了,下载程序一样的结果啊,我关掉了。好,这个就是无返回值 无参数的一个函数的应用,然后实现一个延迟。刚才不是我们用到了一个全新的语句,复语句是不是?那么我们现在就来学习一下这个复语句。

来学习下汤姆魔块里的私立盘鼠,他可以让当前的县城暂停多少秒后再继续执行。正在写游戏脚本的时候非常有用。我们来实现一个简单的读秒器, 首先写出一个死循环不断的打印已经过去的秒数,由于没有任何的延迟,打印的速度是飞快的,所以在每次打印后要停顿一秒钟。首先我们来导入时间模块, 然后调用 tom 点 sleep 括号,你的数字就是要停顿的秒数,这里我们填入一表示要停顿一秒钟。 我们再次运行,可以看到变成了每秒打印一次。

好,大家好,这节课呢,我们来讲解一下这个虎牙六 s 系统的两个颜色函数啊,第一个呢就是说这个相对颜色函数,这个维他是个底类 和绝对颜色函数呢,为他是底类横贴啊,有这两个颜色颜色函数啊,在这个地方呢也给大家进行一个列举,在这就这两个函数 啊,相对原石呢,是指每次岩石啊,都是从任务执行函数,维他是底类开始,岩石指定的时间结束。绝对原石呢是指 每个指定的时间执行一次调用微塔,他是个抵个眼跳砍树的任务啊,犯罪 法说就任务以固定的频率进行进行执行,这个为他这个底位很跳,简单的来说呢,他就是说假如说我这个任务在这里调用了是五百毫秒执行一次,那么呢这个函数 就会在五百每屋隔五百毫秒进行执行,这个调用这个函数的这个任务里面的这个任务代码的一个主体啊,好,我们来看一下,他这个有一个内存啊,这个呢就是一个相对延时。 好,这个是维他是个底类啊,调用这个维他是个底类好,在这里面呢有一个东西大家要注意一下啊,嗯,在这个高版本上呢才有这注意这个缝啊。 pdms 图 这个词是用于将毫秒转成节拍数啊,他在虎牙 qsv 八点一及以上版本才有这个风,如果是低版本的话呢,我们可以用这个来进行代替啊, 这个在大家在使用这个的时候啊,需要注意一下啊,看这个版本用的是哪一个版本的,不然的话他会爆错的。好,我们接下来呢再来看啊,对于这样一个任务执行, 当任务 a 获取 cpu 的执行权后呢,就我们刚才创建了一个任务吗?先执行任务 a 的主体代码,之后调用系统延时,维他是个底类,进入主赛状态,然后任务一配一进入主后状态呢,其他的任务才可以得以执行。如果你在这 这个循环里面不掉这个维他和底雷啊,其他的 cpu 啊,就得不到这个执行权,其他的任务啊就得不到这个执行权。好,如果 说实话看门狗的话呢,他就会触发看门狗啊,所以说这个岩石是一定要加上的,让这个任务进入阻塞团后, 让辅维辅源 us 内核呢,非周期性的检查任务 a 的主摄是否到达,如果主摄时间到达呢,则将任务 a 设置为就绪状态,由于任务 a 的优先级最高,会抢占 cpu, 再次执行任务主体代码,不断的循环。好,这个呢,就是 这个相对严实,就这个维他是个底类,他的一个工作过程。 好,这个维他这个底令呢,是从这个调用岩石开始算起的,岩石呢是从 岩石呢,就是从电路函数维他和底类开始算的,岩石是相对于这一时刻开始的,所以说叫相对岩石函数,还有一个叫岩石函数呢,就是说这个维他是个底类。 ntr 这个函数和维他的啊,这个函数呢,就增加了一个参数啊,就这个参数他 他呢是用于指向一个变量,这个变量呢是保存上次任务解除主色的时间啊,我们一般创建这个任务啊,就是在这个任务开始的时候 来获取。好,我们可以来看一下我们这个代码,好,就在 这个地方呢,我们会把这个变量负一个值,这个值呢就是我们刚才这个文档所说的,就是上次任务解除主色的时间,好就通过这解除主色的时间呢来判断他这个延时, 以便后面呢周期性的执行啊,他就算从这个解除阻塞时间开始算起,就是说五百毫秒,假如说我延迟五百毫秒是否到达这个呢?就是第二函数为他是个底雷按跳开始啊,每隔固定周期,任务的主体代码呢会被执行 一次,既使任务在执行过程中发生中断,也不会影响这个周星系,只会缩短其他任务的执行时间,所以这个函数呢被称为绝对颜色函数啊。嗯, 这个有个大家需要注意一下,相对于对于相对延时呢,如果任务不是最高优先级,则任务呢执行周期呢更不可测,这个问题不大,我们本来也不需要用它呢,作为精确的延时 战友呢,对于这个绝对严格来说,如果任务不是最高优先级啊,这仍然能周期性的将任务解除主赛,但是解除主赛的任务不一定能获得 cpu 权限,就说可能有其他更高优先级的任务会优先执行,因此呢,这个任务主体代码也不会总是精确周期性的执行啊。 我们在这个里面呢写了一个代码给大家演示了一下啊,一个呢就是这个相对颜色啊,我们就直接调用这个维他这个底类,这个呢是一千毫秒来进行一次啊, 这个呢也是一千毫秒执行一次啊,就延时相同的时间,最终创建了两个任务啊,这个呢就是获取到一个解除主色的一个时间,把他的指针给他穿过, 然后呢这个就是一个延时的一个周期,就周期执行的一个时间。好,接下来呢我们把这个代码给他下进去。好,可以看到呢,我们现在这个代码他已经在运行了啊, 我们呢再给他下进去。接下来呢我们用这个创口条的助手来看一下,因为这个呢不带周期,我们把这个时间撮合分包线设计 给他打开。好,我们需要把这个给他断开,把这个窗口给他断开,然后打开这个窗口。 好,我们可以看到啊,这个任务呢他就是 一秒知心,这看的不太明显,我们给他改成五百。好,两个时间一样的看的就是不太明显。好,我们就把它改一下, 可以看到啊,这是三十九点七三,三十八点七三,基本呢就是一秒执行一次啊。好,我们再来打开这个 窗口。好,我们可以看到啊, 这个任务呢就是非常接近五百毫秒,你看这个是六七六,这个呢是幺七幺啊,就是非常接近五百毫秒,他执行一次啊,因为他这就两个任务优先级。好,如果在任务优先级高的话呢,他可能就是说 会时间不差一点,这个呢还是非常准的啊,我们可以看到这个他是个一任务啊,是这个他是个二任务,运行两次之后他运行一次就说明这个他是间隔一秒,这个呢是间隔五百毫米啊。 好,这节课呢就给大家讲到这里,好,谢谢大家。

咱们给大家介绍一下颜色函数,嗯,咱们把颜色函数呢,咱今天就开始写写程序了,是吧?那么我们写程序最好我们找个地方哈放下来,放在什么位置,我们好去修改,好去添加,是吧? 这个咱们创建了模板,模板文件都在这个优势里面,是吧?那么今天我们建了一个哈德 y 文件夹,在这个文件夹里面,首先 咱们建立延时函数文件夹,然后呢再建一个 led 文件夹,因为今天咱们主要的任务就是点亮一个 led, 是吧?点亮一个 led, 然后用 延时函数让他延时多长时间再灭,是吧?这是今天主要任务。鉴定文件夹,他在文件夹里面,我们 像严实函的文件夹里面,我们再建两个文件,就是你先建立一个 c 文件,建立一个 h 文件,这么两个文件,这是严实函数里面,然后 led 同样的也是 一个 c 文件,一个 h 文件,这个咱们以后写程序,每一个程序的驱动他都有两个文件,一个是 c 文件,一个是 h 文件,这个 h 文件是包含了一些透文件, c 文件都是他的一些驱动, 一些数字化。创建完了之后,创建完了之后我们就要去添加了,这是我们创建好的,然后我们在程序在这个软件里面,然后把它添加进来,咱们就像 粘膜板那样添加就可以了啊,在这里我们需要新建一个这样哈的哈的外,然后 常检好了之后,我们要在里面添添加新文件,添加新文件我们需要 添加的是这里面的一个碎文件,看已经添加进去了,然后再添加 led, 这两个新文件要添加进来,添加完之后, ok, 然后再设置,再点这个按钮,点到费港费加加在这个位置, 我们再添加他的头文件路径,刚才是添加了非文件路径,这里添加两,他要添加头文件路径,直接找到我们的 他的位,然后再添加一个,这样你看这里边 文件夹就有了, ok, 这样我们看一看,这里就有了个哈,照外文件夹下面有个哎,有个岩石, 还有一个 led, 是吧?这两个随风键,那么我们保存编译一下,等待一下, 好了,编已结束,零错误,零警报。那么编辑完之后,咱们看一下,在这个哈德 y 文件夹下,这个延时函数下面看, 就多了这么多,多了这么多,他是自动添加的,这个函数下也多了这么多,其中最主要的是这个 led, 还有这个 这两个这个头文件主要是定义了一些这个 相关的需要引用的投文件,你像这里咱们需要引用一个这个投文件,这个投文件就是这些包含了这些的,你需要用到的。下面呢就是 定义了三个函数,这三个函数在延时里面编的编意在延时里面,咱们学的,在这里我们需要声明一下,就是通电了,我们需要声明一下那个你 这个编写的函数只有在同样声明了,然后你在其他地方就可以调用这几个函数了,这是头文件,咱们看这废文件里面是怎么编页的,是怎么编写的哈,首先三个,首先呢, 那个咱先看延迟函数哈,延迟函数定义了一个微秒、毫秒和秒这三个函数, 咱们需要在非文件里关于这个 定时器哈,这个延时函数,关于这个延时,延时呢,这个大家了解一下就可以了哈。嗯,知道这个延时是怎么个情况就可以,嗯,他基本上咱也不需要动。那么 咱先介绍一下这个延时,首先呢在延时函数,咱们要写一个微秒延时函数,微秒延时函数他是怎么写的哈? 是首先他有一个重装纸,是吧?这个 l o a d 这个位,看一下 左侧 lvd, lvd, 他有一个零的二十三位,零的二十三位,他这里边是全部装的出石子,重装子,是吧?他就放在这里, 这个就是放了,放了一个充当纸,这个纸到了零之后他会重新再 加载,然后呢有了充当值了,咱们就可以。嗯,清空计数器,清空 控这个计数器,这个 v a l 这一个他呢也是零到二十, 但这是一共是二十四位的哈,这个就是激素的当天指你激素的时候 记住了哪个数字了,他就这个这个这个计算器的就会显示出来,把它清空,那就是重新计数,不是啊,然后,然后 后呢,我们选择这个哪一个失踪员,咱们前面是需要七十二的哈,但是以七十二的,我们要选择失踪员,然后选择完之后,接着就是开 起技术,就是这个这个 ct 啊 l 这个这个计算器哈,他的第二位置疑 是选的时钟圆,为七十二兆的时钟圆系统时钟圆,他的地灵位为一,代表的开启定时器,咱们看一看他的地灵位, 看,这是计时器的事能他唯一第两位,唯一就是开启计时器,看看第二位,第二位是选择时动员,当他唯一的时候选择的是克拉克 acb 的失踪员,就是咱们的系统失踪,如果选择零的话,就是失踪员除以八,是吧?咱们这选择系统失踪七十二兆,选择好系统 始终开启了技术,然后就开始他就开始技术了,我们等待的技术 到就可以了,然后在这个等待,等待什么时候技术到了呢?他有一个位,就是这个技术界的第十六位,他置业的情况下就证明技术结束了,咱们看一下第十六位 这一位,第十六位如果 计数到了零的返回一就这一位,第十六位如果计数器如果计数到了零结束了,这一位就会之一,这一位之一 我们就知道结束结束了,然后呢我们马上关闭他关闭定时器,关闭定时器就是就是一等于零位,就是第零位 缺乏地灵位,地灵位给他一个宇航的灵,地灵位给他负责个零,他就关闭了地灵位。 刚才刚才咱们是开启了地地理位为一开启定时器,那么地理位我们给他写入个零,定时器关闭了,关闭了之后这个定时就结束了, 这就是一个定时的一个循环,下次你要再用,我们再掉一次,再掉一次他又重新加载 结束,结束,就这么个过程。那么有了这个微秒的延迟函数,那么咱们就可以算一下这个好秒了,这个因为咱们 呃有了这个微秒的这个号表,咱就用这个微秒来进行扩大就可以了,因为 一千为秒就得为一毫秒,是吧?所以说就在这里面让他循环,让他循环,一直一直循环,这个你需要这个多少数就可以了,正好是一千,一千为秒是一秒,是吧? 然后呢这个秒再调用这个毫秒,是吧?一千毫瓦有那么一秒就是这么这么使用的,其实大家只要会了这一个就可以,主要是这一个 就是一个重装值,一个把当前值清零,然后选择适中元,然后开始计数,等待计时时间到关闭定时器,这就是一个定时过程,又开始写这个 led 灯的驱动程序。

那今天跟大家来分享一下阿迪鲁中这个自带函数德类,那么德类的功能主要是来设置程序暂行运行的一个时间的啊,那么德类它里面有一个参数叫 very vivo, 就是我们写入暂停的一个时间单位,是一个好秒,那么接下来通过实力可以来了解一下, 那鉴于上一课我们已经讲过了,是吧?玩这个赛拉 app, 我们里面是设置我们银角的一个工作状态的,是吧?我们今天我带来的还是这个 啊,还是那个交通灯的模块啊?交通灯模块还是个阿丁的主板交通灯模块。那么首先我连的还是一个这个二三四啊,二三四,那么所以我们还是把这个二三四的这个银角的工作状态设定一下,之前我们有讲过拼毛豆,是吧? 拼 model, 我们这里是二号银角,二号银角啊,它设为 output output o u t p u t。 那么二三四已经我们设置好银角,它作为输出端口,是吧?那另外我们看一下这个下面,下面我们用昨天说的是让三个灯同时亮,或者是三个灯的这个 都灭,或者说有一个灯亮,有个灯灭,是吧?那今天我们来做一个效果,身上怎么样啊?我们先让他的红灯亮,那亮亮多久?亮亮亮一秒,然后怎么样?然后灭,然后紧接着 绿,他这个黄灯亮亮一秒秒并且灭,最后一个是这个绿灯亮亮一秒并且灭,并且他让来回这样这个重复执行, 那今天来试一下啊, that's right, 这是我们先是二号银角,那我看一下是不是红灯啊?红灯连是红灯是四号银角还是红灯是四号,呃,这个黄色是一个三号,最后摆这个绿色的是一个二号,所以先是四号 要写下工作状态,是不是写,嗨,是吧? 啊?别忘了分号啊, that's too right, 我们写的我们这个四号端口是链啊,高电瓶,那么紧接着写四号端口是一个低电瓶啊, 那么紧接着就是说四号端口,他中间链和面是不是隔个时间,对吧?这个时间我们刚才已经学过了,是吧? 单位说一个,我们好秒,我们就说是个一秒吧,那就一千啊, 那我接着同样的,我们这个就复制了,好吧,我这就算还是写吧,还是慢慢写吧, 大概得了一千。 其实说真的,写代码其实确实挺无聊的啊,但是这个是所有从业者必须经历这的一个过程啊,这个一定要耐住性子去慢慢写,等到你真正熟练以后,你说不用写这么长的, 这个浪费大多时间,你就可以复制了,复制粘贴了。但是前期我们还是建建议尽量去进行大量的代码书写啊。 对, 写错了,这显示一千, 那最后一个我们再写这个 right, 抽血,二号端口, look, 那这样我们就全部写完了,我们可以看一下今天这个代码就全部写完了,然后我们进行烧录。 啊, 好,那我们来看一下,这是做出类似于这个流水灯的一个效果,是吧?我们先让红颜色的灯亮,再是我们的黄颜色,再是一个绿颜色,对吧?

今天主要介绍一下曼特勒的神秘宁可的一个几个厂。其他常用的这个模块,比如说数学模块,数学函数模块、随机数模块和传递函数模块。 呃,首先的话就是介绍一下数学函数模块,数学函数模块的话,他就会呃这个模块的话可以提供一些常见的一个数学运算,比如说命运算,对数运算,指数运算的 啊,默认的话是单输入,单输出就是对这个输入进行一个数学操作之后,然后输出,然后选择相应的这个参数的话,他在这上面会显示,比如说我自己选择默认的是指数啊,这个一一的优势方,就是对这个输入的优进行一个指数运算之后作为一个输出, 然后这时候的话我们就可以在这个上面看到对应的这个函数标志,然后我们可以这个时机的这个函数库里面看一下 啊,因为把这个门的热门最近更新到二零二零 a 的,所以的话和以前的二零一九 a 可能有有些显示是不一样的, 这个叫 max, 嗯,他对大小雪敏感。 matchup 可以看到这个这个模块的话, max 八选的话可以当着他。是啊,看球是大选,然后把它添加到这个文件夹啊,这个仿真,仿真文件里面 大家可以看到这个就是一个 mass, mass faction, mass faction 的话我们选看一下他的一个参数,猫论情况下他是一个 可以看到他的一个发弦的话,可以是这个对数十的,十的,由此方落个以时为底,由就是对他也进行一个以时为底的这个对数运算,然后他的一个平方,呃,平方,这个 跑啊跑啊的话就是他是有两个输入的,可以选看一下,如果是选择他的就是对这个, 呃输入优和微次方,就是我他是一个优的微次方嘛,就是输入一个优和微,然后输出,所以的话他有两个输入,然后还有一些其他的,比如说这个取,还有呃 球模,然后以及其他的一些运算,就是根据自己需求,如这是及供血基本的运算。嗯,比如说这里的一个这个麦克尼跳舞的这个 平方的话,就是扶植绝对值的平方,一个输入两口,然后这是塞口了,这是平方运算,然后这里是负二共啊,共 录的不多。然后这个 r e m 的话是求榆树计算, m o d 的话是求魔运算,然后这个全是 pos, 全是 pos 的话是求这个举证转字,就是对这个输入的心 矩阵信号的话转字一下,然后这个哈密哈密 ten 的话是这个复述功的转字用的名比较少。比如说我们要实现一个 fs 等于一加上, 然后就是一加 s 平方分之一,这个 x 的话作为一个输入,那这时候的话,我们用这个神秘定格来仿真一下的话,它的一个结果就实际上就是一个这样的。我们运行一下。 呃,首先的话,这里的 x 的话,我们可以看成是一个 t 吗?这里的话时钟信号会提供一个,呃,这个可以看点是一个信号面的输入,然后对这个时钟信号偏通过这个发选选择这个呃 啊 sacro, 呃,就是平方一下,平方一下就相当于可以可以看成是 x 平或者是 t 的平方, t 的平方之后加一, 这是通过一个上求和,然后通过那个公司看的长长速模块,然后这里的话最后输出的结果的话,这里就是一加一的平方,一加一的平方, 然后这里的话是有一个呃 loss 拍了,就是对他进行求倒数啊,对他进行求倒数,就是对输入的信号啊, 这里的输入求导之后作为这个输出,那实际上这里最后的结果的话,就是一加优的平方分之一,然后最后看一下他的一个施暴器的一个输出的话,实际上他就应该是一个这样的,有递减的,所以在这个优的越来越大,他会越趋向于 零,然后这是一个这样,这样实际上根据你实际的需求去可以构建啊,用这个 mass faction 的话啊,构建一个常用的这个函数还是可以的。 第二个模块的话就是随机速模块,随机速模块的话他是也是一个信号源的模块,他可以产生一个正态分布的一个随机信号,默认情况下是随机产生一个,因为他是正态分布吗?正态分布的话他就有两个参数,一个是君子,一个是方差,那这里的话是默认情况下是用的 一个呃,正态单位的正态,呃,就是这个正态分布均值是零,方差是一的,然后在信号处理的时候,可以作为一个噪声的一个信号源,呃,给被滤波的信号增加噪声,去测试这个滤波器的滤波性能 啊。随机速模块的话,就是他的一个图标的话,就是轮的 number, 也可以搜手搜搜,搜一下,也不用手,这里有有一个轮的 number 可以看到这里的话,比如说我产生一个君子啊,这里参数的话就是君子方叉,然后随机数的种子,还有这个采用时间 啊,随机数的种子的话,这里的话改变他的种子的话,他的随机数的话是会呃产生的随机数的结果会变的,呃,如果我们要就是保证呃这个每次仿真和你看啊,就是之后关闭这个文件之后,打开之后生成的 结果是一样的,我们这个呃种子的话就保持不不变,就是在后面的这个参数,就是这个二十一滴的话,适用于产生随机树序列的种子,可以是零或者是智能树,然后根据种子的话可以产生周期性的尾尾随机树,如果保持这个参数种子不变的话, 都是仿真,他的结果是同样的,因为随机树的话,如果随机树的种子呃是不一样的话,那这里可能每次他的一个结果,试播期的结果他都是不一样的 啊,为了实呃达到这个输出结果实验结果的重复性,那所以的话这个种子的话就一般是不变的。然后这是生破胎的话,就设置模块的长按时间,就比如说我们这里呃设置一下这里的话就是一个产生一个均值零方差零点一的这个信号, 你们可以看一下刚刚已经运行了,所以的话这里试播期就有一个结果,可以看到这里的结果和我这个文本里的结果实际上是一样的,因为呃我没有改变他的一个随机数的一个 肿胀这个色的色的这个参数,可以看到他这里是是一样的,比如说我们现在去更改一下这个参数,我们可以看一下先把这个删掉 啊,比如说我这个种子改成十了,只要是零或者正的数都可以吗?我们再运行一下,我们可以看一下他的一个参数的话可能就不一样了,那可以对比一下,这个是以前的这个色的,零的,这个是色的,十的,色的是十,可以看到他的呃, 虽然他的一个方差和君子是一样的,但是实际上他产生的一个图形的话可能是不一样的结果,所以的话就呃可以看到这个结果的话会不一样。第三 三个的话是传递函数模块,传递函数的模模块的话是在经典控制领域用的比较多的。呃,比如说呃,这里的话就是把食欲的信号转化成频域,频域的话就是这个呃 通过拉丝变化去进行一个变换。这个是在自动化或者控制系统里运用的比较多的,比如线性系统里面啊,单输入单输出的啊,这里的话就是 嗯一除以 s 加一,嗯,然后这个模块的话是可能我们自动化专业用的比较多啊,这个是这个的话就是相当于是呃分子和分母,分子和分母的话分别表示了他的一个系数,比如说这里面的 s 平方加二、二四加一的话,实际上那就这里 他的一个分母,这里是在分母设置啊,通过这个英文输入牌中号号一二一分别是他们对应的系数,分别是降密排练。 比如说我的 s 平方前面是一,然后 s 的的前面是二,然后 s 这次长数的话可以理解成一乘以 s 的零次方,任何数的零次方都是零啊,都是一,那这里的话实际上就是把他们的系数降密排练。如果是如果这里比如说这个 s, 二, s 是零的话,就是没有这个 s 一次,像那这里的这个参数的话就是零啊,就是如果你有系数的话就把它放上来,如果没有的系数你就添零, 让他成降命排列,这个和这个多项式是一样的,有这里面的话也是一样的,这相当于是一个二阶惯性环节, 这个二二节,二节正的环节,二节正的环节的话我们给他一个节约信号,这个 stay 我们可以看一下他的一个,呃,输出的机构的话就是一个这样的。 喂。啊,好的好的,谢谢啊。不好意思,刚接了个电话, 然后这里的话实际上,嗯,这里是用的比较多的,所以的话,呃,这个是传递函数,传递函数模块的话实际上是,呃和这个,嗯, 自动控制原理啊,还有就是控制器相关的线性系统,想呃设计会比较多。今天的话主要是以这个简单例子讲解一下这, 呃数学函数模块,嗯,随机数模块,伦敦 number, 还有成立函数模块啊,全是发型啊,全是发型的话,这里面呃全是否全,是否的话我们一二一一二四一二全是否全,是否?就这里这里有个全是否发行, 但是这里还是模块,然后今天主要是简单的讲解一下,然后谢谢大家。

哈喽,大家好,我是紫梦千寻,那上一次视频呢,我们讲了这个自考控制的基本概念,那从视频播放量来看,热度还是比较高, 那说明大家对此考还是比较感兴趣,今天来更新一期,以一接一的啊 c 为例,来控制一个一接传递函数的仿真视频教程。那首先我们来看一下这个扩张状态观测器的搭建,那扩张状态观测器呢?这个一阶的话是有两个输入, 两个输入,然后一两个输出,那这个矩阵里面的这些数值呢?就是跟这边是一样,这边你可以看到负贝塔一一,那我这边打的是负 b 一一,所以呢是用 b 一来代替贝塔啊,这个分号呢就代表是另起一 好,那就是 matel 本里面指战打法同一行的元素之间呢,适用于空格隔开,把 abcd 指认打进去,然后呢我们就获得了这个扩张状态观测器,那这个控制器的结构搭建呢? 结构搭建是就是跟这个图是一样的,那这边这个 b 零呢?之所以在我们的心中另一个图里没有出现,是因为我们在这边是有一个 b 零的。那我们扩张状态观测这两个输入呢?一个是这个 u, 也就是控制器的输出, 他呢是空扩张状态观测器的其中一个输入,那这个外呢,他是我们系统的输出,那他是我们这个观测器的另一个输入。那这个 z 一二这两个量,我们上次讲过,一这个量会跟踪外,然后呢 z 二这个量会 跟踪总扰动,那这个呢就是我们控制器的结构,那这边呢还有一个赛车瑞士模块,这个呢是可以让输出饱和的,限服限在一定范围之内,那对于传递函数系统来说呢,你可以不用这个东西,但是如果你要仿真真实的物理系统的话,肯定需要这个模块, 因为你真实物理系统的输入肯定是一个有限值。再看仿真波形之前,我们先做简要分析,那这边呢,我把这个分析写在我的文档里面,我们的被控对象传递函数呢是三 s 加一分之五,那我们 思考控制呢,我们上次讲过是要把控制对象写成微分方程的形式,那这个传递函数向微分方程转换是这样的,你把这个三 y 三 s 加一乘到这个左上角,然后呢 s 乘以 y 的话,划分到换算到微分方程里面,就 是 y 的一节岛, ys 乘以一呢,就直接变成了 y, 那这个 u 呢也是一样,所以我们这个化成微分方程呢,就会变成这个样子,然后我们把它化成自考的范式,所谓自考的范式呢,就是 y 点等于 b u 加 f 的这个形式,那我们两边同时除以三的话, 就可以得到这个是三分之五,优减三分之一外,所以呢我们就可以对字号的控制器参数进行一个初步的设定,那我们就是壁纸呢,就可以直接设置为三分之五,然后我们会知道这个总扰动呢,在这里就是付三分之一外, 那我们就是用这个方法来初步配置 ads 中 b 的值的,那设定完 b 值之后呢,我们字块啊还有两个参数需要整定,一个是欧比改 c, 一个是欧比改欧, 那我们的这个但实际上呢,我们其实是有备胎一和备胎二的,那在这里呢,我们的备胎一是等于二倍的我们一个欧,那我这边我们一个欧是二十五,那备胎二呢?是我们一个欧的平方,那这个呢就是所谓的贷款法。那如果你对这个想要进一步了解的话,你可以去看 高老师的这篇文章,那么上次课在这边讲了,就是说如果我们 c 二可以跟这个系统的总扰动 f 互相抵消的话,那在这一部分在内的一个系统就会被我们简化成一个单积分器, 那我们就可以把传递环数化成这个形式,就是说我们用一个简单的 omgex 对一个单机分析系统进行控制,那化成这个形式以后呢,我们的开环传含 之一就是蓝框框的就开划船之一,他的船船数据是 s 分之欧米卡 c, 那么呢 b 划船函之二,那就是一加至一分之之一, 那我们经过简单的化解以后呢,可以化解成这个样子,这样子呢就是他的闭环传函,这个我不知道大家熟不熟,这个呢是 rc 滤波器的传奇函数, 那几乎每个学过电路的人都算过这个 c 滤波器的食欲响应,那这边这个一除以欧米克 c 呢,就是那个滤波器的时间长数, 如果我们算过食欲响应的话,我们会知道在五倍的时间上数,也就是五除以 oplce, 这个时刻我们的这个系统的闭环输出可以达到给定值的百分之九十九,基于这个认识呢,我们就可以根据控制系统的设计 指标来设置我们的欧米克 c 值。比如说我们现在希望闭环系统在一秒钟之内达到我们的给定值,那我们五除以欧米克 c 等于一,就可以推出我们这个 c 等于五,就是说我们将我们的 c 设置为五的时候,我们这个系统就会在一秒的时候达到我们的给定值。我们来看一下,那这边呢我就是将这个我们也就是 kp 设为五,然后呢我们来仿真一下,那从这个仿真结果上我们可以看到 在一秒钟的时候,这个值呢就是刚好达到了零点九九多一点,这边呢是零点九九一八,那这个呢就是我们的这个自考控制的其中一个特点, 就是说我们可以简单的设置 kp 来控制我们这个三 s 加一分之五这样一个控制 对象,然后呢你可以不用管着控制对象本身是什么,那把这个对控制对象的化解工作呢交给我们的扩张状态观测器来处理。那这边呢我们的扩张状态观测器的所谓的欧米伽欧就是扩张状态观测器的带宽,那设置为这个 kp 的五倍, 那这个是基于这样一个原因,就是说我们刚刚描述的所谓的用 kp 来控制一个单积分器,是基于我们 l eso 的 z 二,能够快速的抵消我们被控对象本身的这个总扰动,那 这个呢相当于是控制器的一个外环,这个呢相当于控制器的内环,我们的外环需要比内环更快, 就是说在你这个内环反应过来之前,我们就把这个控制器化解,我们就把我们的控制对象化解成一个 单积分器,那这样子呢,我们刚刚那个用比例控制来控制一个单积分器,这个事情才有成立的可能,所以呢我们需要观测器带宽比控制器带宽要大, 那我们一般建议呢是大三到五倍,那实际呢肯定要根据你的控制对象来进行调整,那这个呢,就是我们的控制器带宽和观测器带宽的一个基本的设计方法。那我们换一个参数再来试一下,比如说我们现在希望五秒钟达到稳定,那 五除以我们 mxce 就等于五,那这个时候呢,我们 max c 就等于一。来我们来看一下啊,你可以看到,哎,现在基本上就是在五秒的时候达到稳定状态,那这样呢,我们就可以很容易的配置这个闭环响应速度了,那我们可以尝试将这个 控制器设计的很快来试一下,比如说呢,我们把 kp 设为一百,那理论上的话,一除以一百再乘以五,就是一除以二十零点零五秒,那我们来看一下他可不可能在理论值零点零五秒就达到稳定, 那你可以看到呢,他没有没有做到零点零五秒的时候呢?他只有这么多。那这个呢 有两方面的原因,一方面呢是我们对这个控制器进行了限服,因为你要这个控制,你要这个被控对象很快达到稳定的,我们必然控制量需要非常大。然后呢这是一方面原因, 另一方面我们的观测器贷宽也没有那么大,观测器他也来不及响应,我们单观测器贷宽呢,这边设置为二十五, 嗯,这个呢是一个是 z 二,我们来看一下 z 二,那这个 z 二呢是橙色这条线,也就是说 在零点三秒以前呢,你都不能把它当成一个单积分器来进行控制,所以呢他这控制响应的速度呢,肯定也跟我们的期望值会不太一样。那这两方面原因呢,都导致了我们控制器 没有达到这么快的响应速度,所以呢这个是没有办法无限制的快的,但是我们想慢的话是可以慢的下来的,这个呢就是我们的这个一个 闭环控制的控制方法,可以看到这边有两个输入量,那一个输入呢是我们的 g 二,也就是观测器输出的总扰动,那我还有一条线呢,是设置的是总扰动的理论值,那我们这边呢,通过推导我们可以 知道观测器这个扰动的理论指是负三分之一外,那他呢跟这个 f 总扰动是对应的。 那我这边呢把这个外用负三分之一传到这个直播器里面,那你可以看到在这个零点三秒,零点四秒之间的某一个时刻,那他们两个重合了, 就说我们的观测器呢是可以观测出这个左脑洞,然后呢把它抵消掉,抵消掉之后呢,我们再用这个 kp 去对他进行一个控制,那这个呢就是我们 a 点 c 控制的一个基本原理。好,那我们前面 在 ppt 讲解的时候,我们还讲到有这种所谓的控制量争议不匹配的情况,那我们刚刚仿真呢,我们是把壁纸设置为跟我 我们真实的控制量增益相匹配,也就是五除以三,那我们在控制一个实际控制对象的时候,我们的壁纸跟我们的壁铃纸肯定是有差距的, 那我们在这边把这个差距来呈现出来,看看控制效果还能不能跟刚才一样。那这边呢我把 b 零设为真实值的两倍二乘以五除以三, 那你可以看一下理论分析的话,我们的左耳洞应该会变成什么样,那我们之前分析过这种 b 值不匹配的情况,我们左耳洞会变成 b 减 b 零 u 加 f, 那我们这边呢就会变成负 b u 减 三分之一外,这就是总扰动的理论值。那如果我们的这个观测器,观测器如果能跟踪我们的理论值的话,那说明他还是可以。 这边呢就是负三分之一外,这边呢是负三分之五优,我来看一下波形, 好,从这个波形来看呢,还是可以很快到达稳定,就是说我们的这个 z 二,我们的观测器是可以应对这种 b 值不匹配的情况。我们来看一下这个最终的输出,大家可以看到这个最终的输出呢,他会变成这种 略有超强的情况,那这边呢是把它放大了两倍,那我们试试看极端点,我们给他放大十倍,看他还能不能稳定, 可以看到放大十倍的话,也还是可以达到稳定状态,只是呢这个震荡呢变得比较多,咱们看看放大放大到正真实值的零点一倍,看能不能 这样子一操作呢,我们可以看到控制量发生了震荡,然后呢这个输出值虽然能稳定,但是波形呢变得有点奇怪, 那这个呢引出了自拍控制的另一个优点,就是说呢,他对你这个壁纸呢,并不是说特别敏感,你可以看到放大一个数量值,缩小一个数量值以后,这个 控制器的效果呢,虽然说是变差,但是呢也没有特别离谱,但这个呢就是思考控制器的另一个优点,就是说对你这个不好整定呢,这个壁纸并不是特别敏感,因为呢他可以将这个不准确的部分 划到这个 eso 里。那具体呢?观测器牛逼到什么程度?他能观测到什么程度?他的定量分析呢是一个学术课题。 那在这边呢,我就给大家做一个定性的分析。那本期视频呢,就到这里,投币破两百呢,更新下一期。那谢谢大家能看到这里,拜拜。


大家好,我是清风。呃,我们今天来讲一讲这个单面机里面的一个岩石,那么为什么要讲这个岩石呢?我们上一节课跟大家讲了几个基本的语言的几个几个基本的秘密, 然后延时呢?我想通过这样的方式来先跟大家讲一讲,因为我觉得直接上电脑来看的话,可能大家一向也不太好接受。那么延时我们常用到的是两个方法啊,第一个是用副语句, 第二个是用这个精确原始的方法用酷函数,还有一个就是用这个单片机内部的定时计数器,定时器或者计时器,我们来进行延时。 那么我们用这个非精确延时方法呢?他就比较简单啊,他的时间并不是很精确,时间延时的时间,比如不是很精确,那么我们很多场合是不需要很精确的,对吧?我不需要很精确,我只要有一定的延时就可以了,比如说我要做一个呃, 闪闪发光的一个灯,对吧?让他去爆闪,这个我就不需要非常准确,亮极表,灭极表,对不对?那么他只要闪就好,我们大家用肉眼看他闪的快慢也就可以了,我就不需要很精确的演示,那么呢我们也简化的程序,对吧? 这种比较简单的程序,那么岩石它的基本原理是什么呢?其实岩石的基本原理就是浪费时间,大家知道我们的单片机它是有一个金正的,也就是它有一个正常频率,它每运行一条程序,它是要花一定的时间的。 好,那么你既然运行程序需要花时间,那么好,我来浪费你的时间,我怎么浪费呢?我用一条货一句,对吧?我用一条货一句来浪费你的时间,我就让这个程序不停的运行这一条,不停的运行这条渔具,当运行完了以后再运行,运行完了以后再运行,运行 百次,对吧?你看这个 i 小于一百,就是这个意思,让他运行一百次,运行一百次以后,他再跳出这个,再跳出这一句,那么他所运行一百次所花的时间有, 就是我们所得到的延时的时间,对吧?这个就很简单了,对不对?那么我们如果要 led 灯闪烁起来,我们上一次做了一个程序呢,就是让一个 led 灯点亮,那么如何让它熄灭呢?我们可以让它熄灭,但 但是如果他点亮和熄灭中间要给他加入一个时间的话,我们就可以用这样一条鱼记,或者这样一条鱼记,大家看一看啊,这个赋予他怎么形成的? 第一句它是一个副语句,括括号, i 等于零, i 小于一百, a 加加,什么意思呢?那就是或是如果,对吧?我们可以这样理解,如果我们执行这个里面的 程序,如果执行到这个里面为假的话,他就继续执行这个里面,对不对?如果没假,比如说挨等于零,挨小于一百,挨加价,他就会判的挨等于零, 然后再来判断这个 i 是不是小一百,如果 i 小一百,他就会呃这个 a 加加, i 加加,就是说他不停的加一,运行一次加一次一,那么从零开始加加加一就变成了一,然后再来判断是不是小一百,没有小一百,他继续加等于二,再加等于三, 一直到 i 加加加到一百的时候,他就会显示他,他就会呃来判断这个 i 小于一百,那么这个 i 如果大于一百,就说他一直加到一百,如果 i 大于一百的时候,他就不运行了, 他就会跳出来,对吧?他就会跳出来,也就是说这个表达是,他主要是看这个表达是是否成立,如果这个表达是一直成立,他就会一直运行,一直成立就一直运行,如果运行哪一次他不成立了,当这个哎,不小于一百了,大于一百了,那么他就不运气了,他就会跳出来, 那他不停的运行这一段,也就是给我们的一个延时,我们通过这样的方法来延时。好,那么我们来看第二种方法, i 等于一百, 什么意思呢?也就是说让他运行一百次,对吧?我们知道为了语句,我们为了语也是一样,我们来判断这个括号里面的指示真是假,对不对?那么他如果等于零就是假,如果等于一就是真,对不对?我们看呃, i 等于一百维尔括号 i 减减,那就说 i 乘 一百开始减,对吧?那么他一直减,一直减,他如果始终大于零,那就他会一直运行,那如果他等于零了以后,他就不运行了,对不对?那他减一。 那么爱简简,就是说每一次简易,每一次简易,他爱等于一百,然后到了 vr 这里,他就运行这个爱简简,那么爱简简从一百开始减,减一下就是九十九,减一下九十八,一直减到零,就是减一百四,减到零以后,当这个 v 群里面,当这个 v 二里面里面等于零的时候, 他这个渔具就不运行了,那么他所消耗的时间也就是一百个周期,对不对?就是一百个继续周期,那么运行一条程序,他有相应消耗掉的时间,那么就是他这个也就是这条渔具我们延时的时间。那如, 如果相应的,如果我要提高他的延迟时间,我就把这个改成两百,改成三百,改成四百,改成一千一万,对不对?那么只要我这个 id 数据类型能够支持到这么长的,呃,这个数据,那么这个延时就可以达到了,对吧?那么这就是我们 在单面机里面用的一个比较常用的延时方法。呃,也是我们初学者最容易掌握的一个延时方法。那么后面还有几种,一个是利用酷函数, 用这个酷函数 m o p 这么一个函数,那么利用这个函数的时候,我们就就就前面就一个路头,要加载一个, 加载这么一个头文件,加载头文件以后我们才能够用这个函数,那么这个函数它的定时是比较准确的啊。还有一个呢,就是用定时器来进行定时,那我们知道我们单片机内部是有定时器的, 我们有两个定时器,有定时器点和定时机一啊,有些就是有二,还有三,对不对?有些单面积比较高级的,他定时器会比较多,那么这个定时器都是我们用户可以用的,我们通过定时器的定时,那么一定会非常非常的准确,那就会相对于我们这种飞机进行时, 他的定时的准确性要高很多。好,那么我们今天就把这个岩石这一块,我们先做这个预备知识的讲解。呃,我们现在这个就要用到这个飞机的岩石 这个语言,然后我们把这个延时的方法,呃,用电脑来展示出来,然后告诉大家这个程序怎么去写,怎么让这个 led 灯让他闪烁起来。那么今天就先到这里,谢谢大家。