실험4)인터럽트 실습 5, 6
- 최초 등록일
- 2015.11.12
- 최종 저작일
- 2015.05
- 8페이지/
한컴오피스
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
목차
1. 인터럽트로 LED 점멸
1) 실습개요
2) 실습 목표
3) 사전지식
4) 인터럽트란??
5) 소스코드 분석
2. 인터럽트를 이용한 스톱워치
1) 실습개요
2) 실습 목표
3) 사전지식
4) 소스코드 분석
참고문헌
본문내용
1) 실습개요
- ATMega128 마이크로컨트롤러의 인터럽트 기능을 이용하여 LED를 점멸시키는 실습
- 일정시간 마다 LED가 순차적으로 켜지도록 하고, 버튼 스위치를 누르면 LED가 멈추었다가 다시 누르면 동작하도록 한다.
- 버튼 스위치가 눌려지면 인터럽트가 발생하도록 해야 한다.
- 입력포트 1개(인터럽트가 가능한 포트), 출력포트 1개 사용
2) 실습 목표
- 인터럽트 발생 원리 이해
- 인터럽트 제어 방법의 습득(관련 레지스터 이해)
<중 략>
대부분의 마이크로프로세서는 한번에 하나의 프로그램만 실행할 수 있습니다. 따라서 긴급히 처리해야 할 프로그램이 있다면 현재 실행 중인 프로그램을 일시 중지하고 긴급한 프로그램을 실행하여 마친 후에 중지한 프로그램을 계속 실행하면 될 것입니다.
인터럽트란 프로세서의 내/외부 장치가 프로세서에게 특정 이벤트(event)가 발생함을 알려서 이벤트를 처리하는 과정을 말합니다. 이러한 이벤트는 프로세서의 내부 장치나 외부 장치에 의해서 비정기적으로 발생되기 때문에 프로세서는 인터럽트 처리를 통해 주변 장치의 서비스(이벤트 처리) 요청을 효율적으로 다룰 수 있습니다.
<중 략>
ATmega128의 I/O에 연관된 내용 정의한다.
매크로를 이용하여 interrupt.h를 preprocessing한다.
여러 함수들을 모아둔 헤더파일을 불러온다.
인터럽트 서비스 루틴 선언
포트 D의 0 번째 레지스터를 사용하여 입력
(0xFE는 1~7비트까지의 레지스터를 의미)
포트 E의 0~7번째까지의 모든 레지스터를 출력으로 사용
INT0을 상승에지에서 비동기적으로 발생
나머지 INT 1~7은 Low Level에서 인터럽트를 요구
INT0이 발생할 때만 인터럽트를 요구
외부 INT0을 0으로 초기화
<중 략>
1) 실습개요
- 스위치 모듈과 Array-FND 모듈에 연결하여 스톱 워치를 제작
- 일정 시간마다 클럭에 의해 FND에 숫자와 문자가 디스플레이 되도록하고, 스위치를 누르면 FND 디스플레이가 초기화되도록 하며, 또한 다른 버튼을 누르면 잠시 멈추었다가 다시 이어서 동작을 하도록 한다.
- 포트 D의 0번 비트와 1번 비트를 Int0와 Int1의 인터럽트로 사용
참고 자료
홍익대학교 편, 『마이크로 컨트롤러』, pp99-121
네이버 블로그, 검색어|인터럽트 LED,
http://blog.naver.com/david5212634?Redirect=Log&logNo=140021963422
네이버 지식iN, 검색어|avr studio 외부 인터럽트,
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=104&docId=225023947&qb=7J247YSw65+97Yq4IExFRA==&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0
네이버 지식백과, 검색어|마이크로프로세서,
http://terms.naver.com/entry.nhn?docId=1090888&cid=40942&categoryId=32834