引言
Labview的while循环里面有移位寄存器,看了很多例子才搞懂,把自己的理解简单记录一下。
还是用例子来说明比较好,下面文字摘自博客[1]
- 如下图,上面循环对移位寄存器进行过初始化,下面的循环未对寄存器进行初始化。运行第一次结果都为5。但是第二次运行后上面的数值依然为5,下面的结果为10。这是因为第二个循环没有对移位寄存器进行初始化,所以运行结果会从上次运行的结果5开始继续往下运行,所以运行完结果变为10。
- 在没有关闭VI前,未初始化的移位寄存器会保留上一次的循环值。
但是最初看到他的描述感觉有点懵,主要不理解的地方有两个:
- 移位寄存器的值和N、i有关系嘛?
- 第一次第二次是循环到i=1和i=2的时候嘛?
我的答案:
- 没有直接关系,不会等于N,也不会等关于i,但是和循环次数N有一定关系,可以理解是存在其他地方的一个数,具体多少要看内部的程序是什么样的
- 不是,指的是第一次和第二次运行程序,对应的是按下面这个按钮:
什么意思听我后面的讲解。
解释
首先我们知道循环次数是N为5,那么添加了移位寄存器以后循环5次加1(看上面的程序),所以每次循环结束以后移位寄存器的数就加5。
上面的图初始化了移位寄存器为0,第一次运行循环时0加5等于5,第二次循环时以为寄存器又被初始化为0,所以第二次运行循环时还是0加5等于5,这样每次运行输出的显示的数都是5.
下面的图没有对移位寄存器进行初始化,第一次运行默认初值是0,0加5输出显示的数是5,第二次由于没有初始化,保留了上一次移位寄存器的数5,所以第二次运行循环时5+5等于10,如果一直运行循环程序,也会一直累加,所以这就是说为什么和循环次数有关。
另外,这个博主写的也很好[2],图片很直观,可以进一步加深理解。
参考资料
1.小白自学习Labview笔记(三)-------循环结构 2.LabVIEW循环结构之移位寄存器
|