AVR 마이크로 프로세서 ATmega128 을 이용하여 시계, 스탑 워치, 알람, 다운 카운터 실험 설계 프로젝트 (코드 포함)
- 최초 등록일
- 2017.01.11
- 최종 저작일
- 2017.01
- 29페이지/
한컴오피스
- 가격 5,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
목차
1. 실험 목적
2. 실험 이론
3. 제원 및 데이터시트
4. 분석
5. 사진 설명
6. 전체 코드
7. 결과 및 토의
8. 참고문헌
본문내용
1. 실험 목적
Microprocessor 실험 및 설계 과목에서 배운 내용들을 활용하여 AVR Processor 기반 Microcontroller Unit인 ATmega128 라이트 모듈로 Digital Clock, Stop Watch, Alarm, Down Count Timer을 구현하고 그 동작 및 기능을 분석하고 이해한다.
2. 실험 이론
이번 실험에서 우리는 여러가지 모드로 동작하는 타이머를 제작하기로 했다. 주어진 코드를 분석했을 때 데이터 포트로 FND로 출력을 하는 GPIO, 스위치를 통한 INTERRUPT, 시간을 정확하게 측정하기 위한 TIMER, 그리고 알람을 위한 OCR의 원리를 알아야한다는 것을 알았다.
1) GPIO
GPIO는 범용으로 사용되는 입출력 포트이며 설계자가 마음대로 변형하면서 제어할 수 있도록 제공하는 I/O포트이다. 우리가 실험에서 사용하면서 알아야 할 것은 DDRx 레지스터가 각 포트의 입출력 방향을 설정하는 것으로 1이면 출력 0이면 입력으로 설정하는 것이다. 그리고 출력으로 쓸 때 PORTx = 0x23; 과 같은 방법으로 출력을 해줄 수 있다.
<중 략>
3) Timer
타이머도 인터럽트와 같은 개념인데 인터럽트가 일정한 주기로 일어나게 만드는 것이다. Timer 0은 8bit, 1,3는 16bit 타이머이고 실제 코딩에서는 timer 0와 timer 1은 각각의 모드동작에서 시간을 재는데 사용하고 1에 경우에는 PWM mode를 통해 OCR 출력을 이용하여 알람의 기능을 만든다. Timer의 기능을 사용하는데 쓰이는 레지스터는 다음과 같다.
TIMSK -타이머/카운터(0,1,2)가 발생하는 인터럽트를 개별적으로 인에이블하는 레지스터
ETIMSK -타이머 1과 3이 발생하는 인터럽트를 개별적으로 Enable 하는 레지스터
TCCRn(8bit 타이머) or TCCRnA,B(16bit 타이머) -타이머/카운터레지스터, 동작모드, 프리스케일러 등 타이머/카운터의 전박적인 동작형태 결정 -우리가 사용하는 모드는 일반동작과 PWM 모드이다.
TCNTn -타이머가 카운트하는 값을 저장하는 레지스터로 이것을 조절하여 인터럽트 발생시간을 조절할 수 있다.
참고 자료
마이크로컨트롤러 AVR – 홍익대학교
ATmega128 마이크로컨트롤러(정영호) - D.B.info
당근이의 AVR ATmega128 마이크로컨트롤러(정상훈) - 인피니티북스
AVR ATmega128 마이크로컨트롤러(송봉길) - 성안당
AVR ATmega128 마스터(윤덕용) - OHM