본문 바로가기

[아두이노&랩뷰 컴파일러]Interrupt - Timer

반응형

게임을 열심히 하고 있는데 어머니가 심부름을 시키는거나, 일이 잘 되고 있는데 전화오는 거와 같이 뭔가를 하고 있는중에 끊고 들어오는 것을 "인터럽트 걸린다"라고 한다. 코드가 진행되고 있는 중간에도 "잠깐만"하면서 들어오는 역할을 하는 인터럽트~ 오늘은 랩뷰와 아두이노를 활용해서 Time Interrupt를 배워본다.


[준비물]


아두이노&USB케이블


[연결방법]

별도의 연결 필요없음. 아두이노 보드만 가지고 실습


[블럭다이어그램]


1. Pin Mode.vi을 사용하여 13번 디지털핀을 아웃풋으로 설정

2. Attach Timer1 Interrupt.vi를 사용하여 타이머 인터럽트가 실행될 시간과 callback VI 연결

3. 무한 루프실행. 첨부된 callback vi는 인터럽트에 정해진 시간에 맞춰 callback VI가 실행될 것이다. 이 루프는 사실 필요가 없고 제거할 수도 있지만, 인터럽트가 활성화되어 프로세서가 백그라운드에서 돌아가는 것을 보여준다.(While문에서 아무것도 없이 반복함에도 불구하고 밖에 있는 인터럽트코드에 반응하는 것을 보여주기 위함)


NOTE: 에러와이어는 플로우컨트롤을 위한 것 뿐이며, 클러스터 안의 데이터는 아두이노 타겟에 접속하거나 쓸 수 없다.


[CallBack VI의 블럭다이어그램] - 정해진 시간에 맞춰 이 VI가 동작함


1. LED의 상태를 읽어들인다.

2. LED의 상태를 바꾸고, 바뀐설정을 LED에 내보낸다(깜빡이기)


[프런트패널]

프런트패널에서는 500000us = 0.5s다. 시간을 조절해보면서 깜빡이는 속도도 달라지는 확인한다.



Compile and Download를 클릭하면 0.5s 간격으로 내장 LED가 깜빡깜빡 하는 것을 볼 수 있다.

반응형
-->