2013-07-18 3 views
0

저는 LabVIEW를 처음 사용합니다. USB 장치에서 데이터를 읽는 코드 조각을 작업하고 있습니다.이 배열을 필요한 크기에 맞게 분할하고이 배열의 일부를 순환 버퍼에 저장 한 다음 나머지 부분을 전달합니다. 시프트 레지스터의 데이터. 내가 만나는 문제는 시프트 레지스터가 다른 모든 반복의 데이터를 저장한다는 것입니다. 그러나 가장 최근 반복의 데이터 만 원할뿐입니다.하지만 labVIEW에서이를 수행하는 방법을 모르겠습니다. 아마도 시프트 레지스터는 내 대답이 아니지만 누군가가 제안을 할 수 있는지 궁금해하고있었습니다.시프트 레지스터에서 가장 최근의 데이터에 접근하기

충분히 명확한 지 알려 주시기 바랍니다.

나는 아마 내가 위의 그림에서의 LabVIEW 2011

enter image description here

를 사용하고 있음을 언급해야한다, 내 하드웨어에서 오는 데이터를 읽고 있습니다. 이 데이터는 배열로 읽히고 배열을 분할하여 특정 크기에 맞 춥니 다. 그런 다음이 배열의 일부를 2D 버퍼에 저장합니다.이 배열은 순환 버퍼로 사용되며 배열의 다른 부분은 시프트 레지스터로 설정됩니다. 다음 반복에서는이 데이터가 다음 데이터 세트와 다시 결합됩니다. 내 하드웨어.

내가 지금보고있는 문제는 내 시프트 레지스터의 크기가 지속적으로 커지고 있다는 것입니다.

+1

정말 분명하지 않다 : 시프트 레지스터, 또는 while 루프에서 유일한 루프의 다음 반복, 모든 데이터를 저장합니다. 이전 반복에서 온 데이터를 (논리적으로) 볼 수 있습니다. – CharlesB

+0

글쎄, 이것도 제가 생각한 것입니다. 그러나 각 반복마다 시프트 레지스터 크기가 반복 될 때마다 커지는 것을 볼 수 있습니다. 내가하고있는 것을 보여주고 설명하기위한 그림을 추가했습니다. – user1750948

+2

Execution Highlighting on으로 실행하고 다양한 와이어의 값이 런타임에 무엇인지 확인하십시오. 또한 Wire Value를 on으로 유지하십시오. –

답변

1

나는 Adrian Keister의 조언을 받아 내 문제를 발견했습니다. CharlesB가 맞았습니다. 시프트 레지스터는 이전 반복의 데이터 만 표시합니다. 내 시프트 레지스터의 내용이 지속적으로 증가하는 이유는 각 반복 중에 읽어야하는 다음 데이터 집합을 고려하지 않았기 때문입니다. 다시 도면 보드로 돌아 가기

0

문제를 올바르게 이해했는지는 알 수 없지만 아마 배열을 조건부 추가로 사용해보십시오. LabVIEW 2012에서는 for 루프의 조건부 인덱싱으로 인해이 연산이 더욱 간단 해졌습니다. 여기에 예제를 제공하고 도움이되기를 바랍니다. 인덱스 모듈로 연산에 대해서도 비슷한 조건을 만들 수 있습니다.

http://i.stack.imgur.com/AALLo.jpg

관련 문제