CODEDRAGON ㆍDevelopment/IoT
타이머 인터럽트 (TIMER INTERRUPTS)
ISR(Interrupt Service Routine) 실행 조건
Pending interrupt 가 ISR(Interrupt Service Routine)을 실행하기 위해서는 아래 조건이 활성화 되어야 합니다.
조건 |
설명 |
인터럽트가 활성화 되어있어야 합니다. |
인터럽트는 interrupts(), noInterrupts() 함수로 활성화/비활성화 할 수 있습니다. 아두이노의 기본설정은 인터럽트 활성화 상태입니다. |
관련된 인터럽트 마스크가 활성화 되어있어야 합니다. |
인터럽트 마스크는 interrupt mask register(TIMSKx) 에서 setting/clearing bit 를 설정함으로써 활성화/비활성화 할 수 있습니다. |
인터럽트가 발생
인터럽트가 발생할 때 interrupt flag register(TIFRx) 값이 설정됩니다. 이 값에 따라 ISR(Interrupt Service Routine)이 실행되고, 실행 후 자동으로 해제됩니다. 혹은 수동으로 값을 변경할 수 있습니다.
여러종류의 타이머 인터럽트
타이머는 여러종류의 타이머 인터럽트를 발생시킬 수 있습니다.
레지스터와 비트 설정 값은 아두이노의 프로세서 데이터 시트에서 확인할 수 있습니다.
Atmega328 Datasheet
http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf
Atmega2560 Datasheet
구분 |
설명 |
suffix x |
타이머 숫자 (0~5)를 의미 |
suffix y |
출력 값 (A, B, C)을 의미 |
예를들어 TIMSK1 = timer1 interrupt mask register, OCR2A = timer2 output compare register A 입니다.
직접다운로드
Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf
Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf
'Development > IoT' 카테고리의 다른 글
생활 속 사물 인터넷 '비콘' 뜬다 (0) | 2017.11.27 |
---|---|
Google Waymo(웨이모) (0) | 2017.11.21 |
센서용어사전 - NAVER (0) | 2017.11.09 |
OpenMakerDrone - 오픈 메이커 드론 커뮤니티 (0) | 2017.10.27 |
DHT22 온습도센서 라이브러리 (0) | 2017.10.19 |