完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
为什么需要移位暂存器? 假设我们现在想要设计一个可以从 0 加到 100 的程序,我想你一定可以猜到这个程序要用到循环,但是要怎么将每次循环的资料累加起来呢?不知道你有没有发现其实我们少了一个能将累加的数值传递到下个循环的元件。对于类似的应用来说,这个元件十分的重要,而在 labview 里,他就叫做 "移位暂存器 (Shift Register)"。 举例来说,如果想要累加 1 - 10 的数字,那你会怎么做呢?我们先来看看下面两个不同的程序:
程序 (a) 使用了 For Loop,而循环内做相加的动作,再将结果输出到结果一,但因为无法将每次计算的结果保留,所以并无法累加数值,而程序 (b) 虽然看起来和程序 (a) 相似,但因为使用了移位暂存器,所以能够自动保留每次计算的结果,以达到累加的效果。接着我们就来实际了解移位暂存器的动作方式。 移位暂存器动作原理 移位暂存器是一种非常特殊的功能,只会出现在 While 或 For 循环,这个功能的特性是它拥有两个节点,一个可以用来输入现在的数值,另一个则会输出上次所输入的旧数值。若循环执行了 3 次,新产生的资料会由右边的移位暂存器输入,而该输入的资料会在下个循环执行时,由左边的移位暂存器输出到循环内,你可以藉由下图了解实际动作方式。
建立移位暂存器 只需要在循环的边框上按鼠标右键并选择 Add Shift Register,就可以建立移位暂存器了,且 While 循环和 For 循环建立的方式相同:
多节点移位暂存器 移位暂存器其实不单只能保留上一次循环的资料,他还可以让你自由设定欲保留循环数值的次数,我们由下图来向大家说明。可以看到和之前不同的是左边变成了三个节点,这就表示这组移位暂存器会保留前三次输入到移位暂存器的资料。
那要怎么建立多节点的移位暂存器呢?方法有两种,一种是在移位暂存器上按鼠标右键并选择 Add Element,另一种方法则是直接使用鼠标拖曳左边的节点来新增:
初始化移位暂存器 移位暂存器既然是能够暂存先前资料的元件,当然就会有初始化的需求,不然程序很有可能记录到之前暂存的资料值。如下图两个不同的程序,循环 (a) 有加上初始数值,而循环 (b) 则没有,现在我们都将这两个循环执行一次后停止,但在不关闭程序的情况下再执行第二次,我们来比较输出的结果。
|
|
相关推荐
1 条评论
6 个讨论
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
请教大神,在labview里面对实时扫描资源中的C系列模块NI9234进行配置发生非预期错误
1671 浏览 0 评论
1569 浏览 0 评论
LABVIEW 2023 Q1调用python后一直报错1671
1946 浏览 2 评论
5094 浏览 3 评论
4986 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 22:06 , Processed in 1.187874 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2410