안녕하세요. 알렉스 입니다. 오늘은 LabVIEW에서 많이 사용되는 쉬프트 레지스터에 대해서 설명 드릴려고 합니다.
|
사진1) For Loop |
쉬프트 레지스터에 대해 설명하기 위해서 사진1과 같이 For Loop를 이용하겠습니다.
|
사진2) 더하기 추가 |
|
사진3) 더하기 아래쪽에 반복터미널 연결 |
사진2,3 번에 따라서 더하기 함수를 추가합니다. 그리고 반복터미널에 연결해 줍니다.
|
사진4) For Loop 왼쪽단에 쉬프트 레지스터 생성 |
|
사진5) 코드 완성 |
사진5와 같이 완성을 시키시면 됩니다. For Loop의 횟수는 3회로 합니다. 그리고 쉬프트 레지스터를 0(가장 왼쪽)으로 초기화 합니다.
|
사진5) 코드 출력 결과 |
코드 내부와 외부 변수에 3이 출력 되었습니다. 당연한 결과 인데 처음에 0이 출력되고, 1, 3으로 결과가 나오게 됩니다.
|
사진6) 초기화 0을 제거 |
이제 초기값 0을 제거하고 진행하기로 하겠습니다.
사진7) 2회 실행(위쪽) 3회 실행(아래쪽)
사진7과 같이 결과값이 누적된다는 것을 알수 있습니다. 이는 프로그램이 종료된 후에 결과값이 쉬프트 레지스터에 남아있다는 뜻입니다.
|
사진8) For Loop 예제에서 진행되는 순서도 |
|
사진9) For Loop안의 쉬프트 레지스터 동작 순서 |
사진8의 순서도와 9의 사진을 보면 쉬프트 레지스터가 어떻한 방법으로 동작되는지를 이해하기가 더 쉬울겁니다. 처음 프로그램을 실행할때 초기값이 있으면 초기값으로, 없으면 0으로 입력하게 됩니다. 다음 초기값을 이용해서 코드를 실행하게 되고 그 결과값을 가장 오른쪽에 있는 쉬프트 레지스터에 전달이 됩니다. 그리고 그 쉬프트레지스터에 있는 결과값이 다시 처음 초기값이 입력됬던 쉬프트 레지스터(왼쪽)으로 이동하게 됩니다.
이제 쉬프트 레지스터의 다른 기능인 다중 쉬프트 레지스터에 대해서 설명 드리도록 하겠습니다.
|
사진10) 쉬프트 레지스터 추가(왼쪽) |
사진10과 같이 마우스로 드롭다운해서 쉬프트 레지스터를 추가합니다.
|
사진11) 다중 쉬프트 레지스터 코드 작성 |
사진11에서 이전 카운터 터미널은 3이였지만 이번에는 5로 바꾸었습니다. 이는 다중 쉬프트 레지스터가 어떤 식으로 동작되는지 보여주기 위해서 수정하였습니다. 그리고 다중 쉬프트의 경우 반드시 초기값이 있어야 합니다.
|
사진12) 쉬프트 레지스터 값의 이동 |
사진12에서 No1,No2,No3의 값이 모두 다르다는 것을 알수 있습니다. 각각 1차,2차,3차 결과값 입니다.
|
사진13) 다중 쉬프트 레지스터 이동방법 |
쉬프트 레지스터는 코드에 의해서 생성된 결과값이 차례로 밀려갑니다. 즉 1차 결과값을 이용해서 코드를 사용해서 2차 결과값이 나옵니다. 하지만 단일 쉬프트 레지스터와 다르게 1차 결과 값은 바로 사라지지 않습니다. 대신 1칸 아래로 밀려가게 됩니다. 1차 결과값은 다중 쉬프트 레지스터의 끝까지 가다가 더이상 없으면 그때 사라지게 됩니다.
원래 동영상도 올리면서 블로그도 썼었는데 요즘 일이 많아서 어렵네요. 영상은 나중에 한꺼번에 올려야 할거 같습니다. ㅎㅎㅎ 글을 읽어주셔서 감사합니다.
댓글
댓글 쓰기