Senza categoria

아두이노 외부인터럽트 예제

마이크로 컨트롤러 컨텍스트에서 인터럽트는 CPU가 현재 작업 중인 작업을 일시적으로 중지하는 신호입니다. 인터럽트를 사용한 프로그래밍은 Arduino 프로그램의 일반적인 상하 시퀀스와 매우 다르므로 일부 에서는 혼란스러울 수 있습니다. 이 문서에서는 인터럽트의 작동 방식과 이를 활용하는 방법을 소개하는 것을 목표로 합니다. 또한, 멀티 태스킹 프로그램을 만들려는 경우,이 Arduino 인터럽트 튜토리얼은 당신을 위해 읽어야합니다. 그러나 가능한 인터럽트 벡터는 3개뿐이므로 모든 핀에 대해 3개의 ISR이 있습니다. 즉, D8에서 D13으로 핀을 변경하면 인터럽트를 하나만 트리거할 수 있습니다. A0에서 A5, D0에서 D7까지도 마찬가지입니다. 위의 프로그램은 몇 가지 새로운 개념을 소개합니다. 정의되거나 필요한 “휘발성” 변수가 없습니다.

INTR0(DP2) 및 INTR1(DP3)은 각각 별도의 ISR 루틴 ISR0() 및 ISR1()을 가지고 있습니다. 별도의 비인터럽트 서브루틴 토글()이 있습니다. 버튼 2에 연결된 핀 2에서 인터럽트 0을 활성화합니다. 인터럽트 서비스 루틴의 함수 이름 – 인터럽트 조건이 충족될 때 실행되는 코드를 결정합니다. 핀이 낮을 때마다 인터럽트를 트리거하는 LOW, 그러나, 오래된 스케치는 종종 직접 인터럽트 번호가 있습니다. 종종 숫자 0(디지털 핀 2의 경우) 또는 숫자 1(디지털 핀 3의 경우)이 사용되었습니다. 아래 표는 다양한 보드에서 사용 가능한 인터럽트 핀을 보여줍니다. 두 개의 인터럽트로 제한된다는 사실을 실제로 변경할 수는 없습니다.

4개의 독립적인 단추 신호를 모니터링하려면 가장 쉬운 방법은 일반 코드 문을 사용하여 두 신호를 확인하는 것입니다. 여기서 핀 13은 출력으로 선언됩니다. attach인터트() 함수 첫 번째 매개변수는 “0”입니다. 우리는 외부 인터럽트로 디지털 핀 2를 사용하기 때문에 이것은 제로입니다. 여기서 “깜박임”은 인터럽트 기능입니다. 원하는 경우 이름을 지정할 수 있습니다. 그들은 낮은, 변화, 상승, 떨어지는 및 때문에 높은 아두 이노에 대한 여분의 하나 모드에 네 가지 상태가 있습니다. 우리는 떨어지는 를 사용합니다.

아두 이노는 디지털 신호에서 작동합니다. 디지털 신호에는 4개의 상태가 있다. 그들은 그림으로 나타났다. 우리는 떨어지는 사용, 그것은 핀 2 감지 떨어지는 가장자리 신호에 때마다 의미, 그것은 기능을 중단갈 것입니다. 그리고 작업을 완료합니다. 두 개의 인터럽트 핀이 사용되므로 2개의 ISR이 필요합니다. 여기에 ISR다음이 프로그래밍에서 지연 ())와 같은 특정 함수가 ISR 함수 내에서 작동하지 않으므로 지나치게 복잡하거나 시간이 많이 걸리지 않는 한 별도의 서브 루틴을 사용하는 것이 좋습니다 . 완료되지 않은 서브 루틴은 흥미로할 수 있습니다. 이제 이러한 인터럽트가 트리거되면 해당 플래그 비트가 설정됩니다. 이 플래그 비트는 레지스터 PCIFR에서 찾을 수 있습니다 : 대부분의 Arduinos는 내장 2 외부 인터럽트 ( 디지털 핀 2) 및 인터럽트1 (디지털 핀 3에).

Commenti disabilitati su 아두이노 외부인터럽트 예제

Founder e direttore di "Perdersi a Roma" ha pubblicato libri di prose, poesie e narrativa di viaggio tra cui "Le persone" (Kolibris) e "Letti" (Voland).