본문/내용
1. 서론
AVR 마이크로컨트롤러를 사용하여 타이머/카운터1을 이용해 10비트 분해능의 Fast PWM 모드를 구현하는 실험을 진행했다. 목표는 내부 클럭을 8분주하여 35% duty cycle의 구형파를 OC1B 핀으로 출력하는 것이다. 이를 통해 타이머/카운터의 작동 원리와 레지스터 설정 방법에 대한 이해도를 높이고, 실제 PWM 신호 생성 경험을 쌓는 것을 목표로 했다. 실험의 재현성을 확보하기 위해 각 레지스터의 역할과 설정 값, 그리고 설정 값 도출 과정을 상세히 기술한다.
타이머/카운터1은 16비트 카운터이지만, 이 실험에서는 10비트 분해능을 사용한다. 이는 TOP 값을 1023으로 설정하여 0부터 1023까지의 값을 카운트하도록 하는 것을 의미한다. Fast PWM 모드에서는 카운터 값이 TOP 값에 도달하면 OC1B 핀의 출력이 반전되고, 카운터는 다시 0부터 카운팅을 시작한다. 35%의 duty cycle을 구현하려면, OC1B 핀이 HIGH 상태인 시간을 전체 주기의 35%로 맞춰야 한다. 따라서 OCR1B 레지스터 값을 TOP 값의 35%인 358(1023 0.35)로 설정해야 한다.
내부 클럭을 8분주하기 위해 TCCR1B 레지스터의 클럭 선택 비트(CS12, CS11, CS10)를 적절히 설정해야 한다. …