타이머 설계 ( 추가 기능 포함 )
- 최초 등록일
- 2015.06.23
- 최종 저작일
- 2014.12
- 30페이지/ 한컴오피스
- 가격 10,000원
소개글
마이크로 프로세서 텀 프로젝트입니다. 이론부터 고찰까지 모든 보고서 구성 완벽히 갖춰져있습니다.
흔한 타이머가 아닌 추가적인 기능을 많이 넣어놨고, 코드 하나하나에 주석을 달아놓았기 때문에 교수님께 설명하실 때도 편하실 겁니다.
보고서 작성자인 저는 대학 시절, 모든 전공과목에서 A+ 학점을 받았습니다. 그만큼 구성과 내용이 튼실하기 때문에 믿고 쓰셔도 됩니다.
목차
1. 서 론
1.1. 설계 목표
1.2. 설계 과제 선정
1.3. Time table 및 임무 분담
2. 관련 이론
2.1. 인터럽트
2.1.1. 인터럽트(interrupt)의 형태
2.1.2. 인터럽트 종류
2.1.3. 인터럽트 제어 레지스터
2.2. 타이머 카운터
2.2.1. 타이머/카운터 인터럽트 레지스터
2.3. LED
3. 코드 및 설명
4. 실제 구현 및 동작 원리
4.1. Mode 0
4.2. Mode 1
4.3. Mode 2
4.4. Mode 3
5. 결론 및 고찰
본문내용
인터럽트란 Main()에서 기존 프로그램 처리 중에 외부의 신호나 변화에 의해서 인터럽트가 발생되면 그 인터럽트에 대응하는 프로그램을 먼저 처리하고 다시 Main()으로 복귀하여 main 프로그램을 처리하는 과정이다.
ATmega58에서 외부 인터럽트는 INT0부터 INT7까지 CPU외부의 핀을 통해 입력되는 신호에 의해서 발생되는 외부 인터럽트를 말한다. 외부 인터럽트는 이 핀들을 출력으로 설정하더라도 발생될 수 있다. 외부 인터럽트 INT0~INT7은 에지 트리거(하강 또는 상승에지) 또는 레벨 트리거 LOW레벨 에 의해 인터럽트가 발생할 수 있으며, 레지스터 EICRA와 EICRB에 의해 설정된다.
<중 략>
인터럽트를 가능하게 하려면 각각의 인터럽트 인에이블(enable) 허용 비트가 set되어 있고 상태 레지스터의 전체 인터럽트 인에이블 허용비트가 set 되어 있어야 한다. 인터럽트가 발생하면 인터럽트 서비스 루틴이 실행되면서 SREG레지스터의 전체 인터럽트 인에이블 허용 비트(I-bit)는 0으로 클리어 되어 모든 인터럽트는 불가능한 상태가 된다. 따라서 인터럽트 서비스 루틴이 실행되는 동안 다른 인터럽트가 발생되도록 다중 인터럽트를 가능하게 하려면 SREG레지스터의 I-bit 를 1로 set 해주어야 한다.
일단 인터럽트가 발생하면 해당하는 인터럽트 플래그(flag)가 셋 된다. 프로그램 카운터는 해당하는 인터럽트 벡터로 점프하여 인터럽트를 실행하며, 이때 해당하는 인터럽트 플러그는 클리어 된다. 인터럽트 플래그는 해당하는 비트에 1을 써서 클리어 시킬 수도 있습니다.
인터럽트 Enable bit가 0인 상태에서 인터럽트가 발생하며 인터럽트 플래그는 1이 되고 인터럽트 가능(enable) 상태가 될 때까지 대기하게 됩니다.
<중 략>
우리는 Micro processor의 최종 설계 프로젝트로 Down counting과 Stop watch의 기능을 포함한 타이머를 구현하는 것을 선택했다. 처음에는 시계 기능만을 가진 프로그램 구현을 생각했다. 하지만 최근 회사생활, 학교생활 등 모든 곳에서 타인과 함께 하는 팀워크가 중요해지고 있어 개인 시간이 줄어들 수 있다.
참고 자료
없음