목차
1. 목적
2. 이론
3. 실험 및 결과
1. 타이머로 LED 점멸시키기
2. 타이머로 디지털시계 만들기
4. 참고
2. 이론
3. 실험 및 결과
1. 타이머로 LED 점멸시키기
2. 타이머로 디지털시계 만들기
4. 참고
본문내용
1. 목적
1. 클록과 카운터
2. Atmega128의 타이머 / 카운터
3. 8-bit 타이머 / 카운터의 일반 동작모드
4. 타이머로 LED 점멸시키기 (실습)
5. 타이머로 디지털시계 만들기 (실습)
2. 이론
타이머/카운터는 내부 I/O clock이나 외부의 크리스털을 소스로 사용하고 사용자가 필요로 하는 주기를 설정하여 일정한 주기로 발생하는 임의의 작업을 할 수 있다. 즉, 타이머/카운터는 입력으로 들어오는 펄스를 셈하는 장치라고 정의할 수 있다. 입력으로 들어오는 펄스가 어디에 존재하느냐에 따라서 타이머와 카운터로 나뉜다. 즉, 클록의 소스가 마이크로컨트롤러의 크리스탈에 의존하면 타이머가 되고, 마이크로컨트롤러의 외부 핀(카운터 전용 핀)에 들어오는 펄스를 셈하면 카운터가 되는 것이다. 타이머/카운터는 단순히 펄스를 셈하는 것이 아니고, 시간과 관련된 기능인 시간 지연, 이벤트 카운팅, 펄스 폭 측정, 펄스 폭 변조(PWM, Pulse Width Modulation), 직렬 포트의 보레이트(Baud rate) 발생기, Input Capture 기능, Output Compare 기능 등 여러 가지에 응용되고 있다. 이러한 기능은 타이머/카운터의 부수적인 기능으로 범용 타이머/카운터는 이러한 기능이 없고, 특수 타이머/카운터에만 존재한다. 타이머/카운터를 흔히 통칭해서 부르기에 같은 기능이라고 생각하고 사용하지만 실상 세분하여 본다면 타이머와 카운터는 엄연히 서로 다른 기능을 말하는 것을 이해해야 한다.
≪ … 중 략 … ≫
3. 실험 및 결과
1. 타이머로 LED 점멸시키기
동작: 타이머0을 사용하여 LED를 주기적으로 점멸한다.(1초 간격)
포트 연결: 포트 E를(0~7비트까지 모두) 출력 포트로 사용한다.
소스 설명
1) AVR 입출력에 대한 헤더 파일과 타이머 인터럽트를 사용하기 위한 헤더파일을 선언한다.
2) 타이머 0 Overflow 인터럽트 서비스 루틴을 선언한다.
3) LED 모듈에 데이터를 보내기 위해 PORT E를 출력으로 설정한다.
4) 타이머0 에 대해 설정한다.
1024분주, Overflow까지의 TCNT0 카운트를 72로 설정한다.
(1 / (7.3728 Mhz / 1024 prescaler))*72=>0.01s에 Overflow가 발생된다.
5) 전체 인터럽트를 허용한다.
6) LED_Data를 Port E로 보내 LED를 점등한다.
7) 타이머 0 Overflow가 발생되면 이 루틴이 실행된다.
Overflow가 발생되면 TNCT0값은 0으로 초기화되므로 다시 일정하게
Overflow를 발생시키려면 TCNT0 값을 재설정한다.
timer 0Cnt가 100이 된다는 것은 0.01 x 100 = 1 즉, 1초가 되었다는 의미가 된다.
주의 : 반드시 최적화 옵션을 -O0로 설정해야 한다.
Project -> Configuration 실행, Optimization에서 설정한다.
1. 클록과 카운터
2. Atmega128의 타이머 / 카운터
3. 8-bit 타이머 / 카운터의 일반 동작모드
4. 타이머로 LED 점멸시키기 (실습)
5. 타이머로 디지털시계 만들기 (실습)
2. 이론
타이머/카운터는 내부 I/O clock이나 외부의 크리스털을 소스로 사용하고 사용자가 필요로 하는 주기를 설정하여 일정한 주기로 발생하는 임의의 작업을 할 수 있다. 즉, 타이머/카운터는 입력으로 들어오는 펄스를 셈하는 장치라고 정의할 수 있다. 입력으로 들어오는 펄스가 어디에 존재하느냐에 따라서 타이머와 카운터로 나뉜다. 즉, 클록의 소스가 마이크로컨트롤러의 크리스탈에 의존하면 타이머가 되고, 마이크로컨트롤러의 외부 핀(카운터 전용 핀)에 들어오는 펄스를 셈하면 카운터가 되는 것이다. 타이머/카운터는 단순히 펄스를 셈하는 것이 아니고, 시간과 관련된 기능인 시간 지연, 이벤트 카운팅, 펄스 폭 측정, 펄스 폭 변조(PWM, Pulse Width Modulation), 직렬 포트의 보레이트(Baud rate) 발생기, Input Capture 기능, Output Compare 기능 등 여러 가지에 응용되고 있다. 이러한 기능은 타이머/카운터의 부수적인 기능으로 범용 타이머/카운터는 이러한 기능이 없고, 특수 타이머/카운터에만 존재한다. 타이머/카운터를 흔히 통칭해서 부르기에 같은 기능이라고 생각하고 사용하지만 실상 세분하여 본다면 타이머와 카운터는 엄연히 서로 다른 기능을 말하는 것을 이해해야 한다.
≪ … 중 략 … ≫
3. 실험 및 결과
1. 타이머로 LED 점멸시키기
동작: 타이머0을 사용하여 LED를 주기적으로 점멸한다.(1초 간격)
포트 연결: 포트 E를(0~7비트까지 모두) 출력 포트로 사용한다.
소스 설명
1) AVR 입출력에 대한 헤더 파일과 타이머 인터럽트를 사용하기 위한 헤더파일을 선언한다.
2) 타이머 0 Overflow 인터럽트 서비스 루틴을 선언한다.
3) LED 모듈에 데이터를 보내기 위해 PORT E를 출력으로 설정한다.
4) 타이머0 에 대해 설정한다.
1024분주, Overflow까지의 TCNT0 카운트를 72로 설정한다.
(1 / (7.3728 Mhz / 1024 prescaler))*72=>0.01s에 Overflow가 발생된다.
5) 전체 인터럽트를 허용한다.
6) LED_Data를 Port E로 보내 LED를 점등한다.
7) 타이머 0 Overflow가 발생되면 이 루틴이 실행된다.
Overflow가 발생되면 TNCT0값은 0으로 초기화되므로 다시 일정하게
Overflow를 발생시키려면 TCNT0 값을 재설정한다.
timer 0Cnt가 100이 된다는 것은 0.01 x 100 = 1 즉, 1초가 되었다는 의미가 된다.
주의 : 반드시 최적화 옵션을 -O0로 설정해야 한다.
Project -> Configuration 실행, Optimization에서 설정한다.
추천자료
[물리]자기력 측정 실험 결과보고서
광합성 색소의 분리 - 예비, 결과보고서
저항기 색 코드와 저항값 측정(결과보고서)
기초회로실험 KCL, KVL 예비,결과보고서
2010. 1학기 경북대학교 IT대학 - 기초전자물리학실험1 실험 결과보고서 : 전자공학센서 활...
[디지털시스템]PICO Processor - ALU Decoder 결과보고서
[디지털시스템] ALU - Arithmetic Logical Unit 결과보고서
[디지털시스템(Verilog)] Memory Controller 결과보고서
[디지털시스템] TTL 기본 실습 결과보고서
프랑크 헤르츠 (Franck-Hertz`s experiment) 결과보고서
3 기체상수의 결정 및 탄산염 분석(결과보고서, 결보)
일반 물리학 및 실험 고체의 비열 측정 결과보고서
일반 물리학 및 실험 Projectile motion 결과보고서
일반 물리학 및 실험 newton's 2nd law 결과보고서