실험4) 타이머와 PWM 실습 9, 10
- 최초 등록일
- 2015.11.12
- 최종 저작일
- 2015.05
- 9페이지/ 한컴오피스
- 가격 1,500원
목차
1. PWM으로 LED 밝기 조절
1) 실습개요
2) 실습 목표
3) 사전지식
4) 소스코드 분석
2. 타이머로 버저울리기
1) 실습개요
2) 실습 목표
3) 사전지식
4) 소스코드 분석
참고문헌
본문내용
1) 실습개요
- 타이머 0의 PC PWM 동작 모드를 이용하여 LED의 밝기를 조절하는 실습
- PWM 동작 모드에서 0C0 핀을 통해 PWM신호를 만들어 출력함으로써, LED의 밝기를 조절하도록 함.
- 밝기는 PWM 신호의 듀티비(Pulse Duty)에 의해 좌우됨.
2) 실습 목표
- 타이머0의 PWM 기능 동작원리 이해
- 타이머0의 PCPWM 모드 제어 방법의 습득(관련 레지스터 이해)
- PWM 신호 출력 제어 방법 습득
<중 략>
ATmega128의 I/O에 연관된 내용 정의한다.
매크로를 이용하여 interrupt.h를 preprocessing한다.
여러 함수들을 모아둔 헤더파일을 불러온다.
LED 사용과 타이머 사용을 위한 변수를 선언한다.
0~7비트까지의 레지스터 중에서 4번째 비트의 레지스터를 사용하여 출력한다
PWM, No Prescaling
0~7비트까지의 모든 레지스터 중에서 0, 4, 5, 6번째의 레지스터를 사용하여 출력한다.
<중 략>
3) 사전지식
- 타이머를 이용하여 버저를 여러 가지 소리가 나도록 울리도록 함.
- 각기 다른 스위치 입력에 따라, 다른 주파수의 신호를 만들어 주면 됨
- 16비트 타이머/카운터 3을 이용/동작 모드는 12번 CTC모드를 사용
- TCCR3A/TCCR3B/TCCR3C 레지스터들을 적절히 세팅
버저에 입력될 신호는 0C3A핀을 사용
WGM은 “1100”으로 세팅
COM3A비트를 “01”로 설정하여 토글 모드를 사용
<중 략>
Change_FREQ(key2DoReMi(piano));
Pop_Button();
STOP_FREQ();
}
return 0;
}
void Change_FREQ(unsigned int freq){
unsigned int x;
TCCR3A |= 0x40
TCCR3B |= 0x19;
do{
x=TCNT3;
}while(x>=FREQ(freq));
ICR3 = FREQ(freq);
}
참고 자료
홍익대학교 편, 『마이크로 컨트롤러』, pp145-180.
네이버 블로그, 검색어 | 타이머와 PWM ,
http://blog.naver.com/PostView.nhn?blogId=dohyung4242&logNo=110159534989
Google 문헌검색 : 한국기술교육대학교 교재 참고
http://artoa.hanbat.ac.kr/lecture_data/microprocessor/2014/%EC%A0%9C7%EC%9E%A5%20%ED%83%80%EC%9D%B4%EB%A8%B8%EC%99%80%20PWM%20(HBE-MCU-Multi%20AVR).pdf