본문 바로가기
C++ 200제/코딩 IT 정보

카운터 파형 발생 모드 (Atmega 128 PWM 등 4개)

by vicddory 2019. 2. 27.

카운터 파형 발생 모드 (Atmega 128 PWM 등 4개)


■ 고속 PWM (Pulse Width Modulation)

Atmega 기준으로 PWM에 사용된 타이머 주기와 실제 PWM 주기를 같이 설정한 경우.


카운터 파형, 고속 PWM[고속 PWM(Pulse Width Modulation)]


  • 업 카운터로 동작, 0x00 - 0xFF (TOP).
  • 오버플로우 인터럽트(TOV0)와 출력 비교 인터럽트(OCF0) 발생.
  • OC0핀을 통해 파형 발생, 이 경우,
    • 비반전 비교 출력 모드는, 지정된 값(OCR0) 도달 시 0 출력, TOP 도달 시 1 출력
    • 반전 비교 출력 모드는, 지정된 값 도달 시 1 출력, TOP 도달 시 0 출력




■ 일반 PWM

일반적으로 위상 정정 PWM 모드라 불림. (Phase Collect)

타이머 카운터가 업, 다운을 반복하면서 PWM 생성, 결과적으로 고속 모드 보다 2배 느림.


카운터 파형, 일반 PWM[카운터의 파형 발생 모드 - 일반 PWM]


  • 업다운 카운터로 동작, 예를 들어 0x00 - 0xFF - 0x00....
  • 오버플로 인터럽트(TOV0)와 출력비교 인터럽트(OCF0) 발생
  • OC0 핀을 통해 파형 발생
    • 비반전 비교 출력 모드로, UP 카운트 중 지정된 값(OCR0) 도달 시 0 출력, DOWN 카운트는 그 반대.




■ CTC (Clear Time on Compare Match Mode)

지정된 값까지 카운트 한 후 출력 비교


카운터 파형, CTC[카운터의 파형 발생 모드 - CTC(Clear Time on Compare Match Mode)]


  • 지정된 값(OCR0)까지 업 카운트, 0x00 - OCR0
  • OCR0 -> 0x00, 출력 비교 인터럽트(OCF0) 발생
  • CTC 모드에서는 OC0 핀을 통해 파형을 발생




■ 일반 모드

최대 값까지 카운트. 각 동작은 공통되게 동작 완료 후 인터럽트를 발생시킵니다.


클럭마다 1씩 증가가 되고 0에서 시작해 255까지 증가한 후 0으로 초기화 되거나, 1씩 감소하는 형태로 분기가 됩니다.


카운터 파형 발생 모드 (Atmega 128 PWM 등 4개)

댓글