마이크로프로세서 실험 - 타이머와 PWM2
- 최초 등록일
- 2020.10.05
- 최종 저작일
- 2017.10
- 15페이지/ 한컴오피스
- 가격 2,000원
목차
1. 이론
2. 실험 코드 분석 - 예제코드
3. 실험 결과 - 예제 코드(스위치에 따른 출려값)
4. 고찰
5. 참고문헌
본문내용
1. 이론
*펄스(Pulse)와 펄스폭(Pulse Width)
펄스 : 짧은 시간동안 생기는 진동 현상
펄스폭 : 하나의 펄스가 가지는 폭
*PWM(펄스폭변조)
펄스 폭을 전송하고자 하는 신호에 따라 변화시키는 변조 방식
모터 제어나 전압제어 등에 널리 사용
*Normal Mode(일반 동작모드)
카운터는 업 카운터로서만 동작
-MAX(0xFF)값이 되면, BOTTOM(0x00)값부터 다시 시작
-MAX 위치에서 오버플로우 인터럽트 발생
TCNTn의 초기값을 설정하여 전체 타이머 주기를 결정
TCCRn레지스터의 WGMn1:n0 = 00으로 설정
*CTC(Clear Timer o
-Compare match) Mode
*카운트의 한계값(최대로 세는 수)을 설정
*카운터는 업 카운터로서만 동작
-0으로부터 설정된 한계값까지 세고 다시 0으로 클리어
-TCNT 값이 증가하여, OCR값과 일치하면 출력 비교 인터럽트 발생
-OCRn의 값을 바꾸면 그 다음 카운터 주기를 원하는 대로 변경 가능
*OCn단자를 이용하여 출력파형 발생 가능
-TCCRn의 COMn1~n0을 01로 설정
-OCRn레지스터 값을 바꿔가면서 출력비교에 의해 OCn의 신호를 토글
-출력되는 파형의 주기는 foc = fclk / (2*N*(1+OCR0))로 계산
*TCCRn레지스터의 WGMn1:n0를 “10”으로 설정
* Fast PWM Mode
0에서 255까지 세는동안 두번의 인터럽트 발생 가능
카운터는 업 카운터로서만 동작
-TCNT 값이 증가하여, OCR값과 일치하면 출력 비교 인터럽트 발생
-TCNTn는 업카운팅을 계속하여 255까지 증가했다가 0으로 바뀌는 순 간 오버플로우 인터럽트 발생
-OCRn의 값을 바꾸면 그 다음 카운터 주기를 원하는 대로 변경 가능
참고 자료
마이크로 컨트롤러 AVR 실험4
윤성우, 열혈 C 프로그래밍, 오렌지미디어, 2010