타이머는 클럭을 세는 장치이고, 얼마나 자주 셀지를 이것이 정한다.
80MHz / (PSC+1) = 계수 클럭
PSC = 79 → 1MHz → 1틱 = 1µs
PSC = 7999 → 10kHz → 1틱 = 100µs
트레이드오프가 명확하다
분주를 작게 틱이 짧다 → 분해능이 좋다 → 16비트 카운터가 빨리 한 바퀴 돈다
분주를 크게 측정 범위가 넓다 → 짧은 시간을 못 잰다
1µs 틱이면 16비트로 65.5ms 를 잰다. 그보다 긴 시간을 재려면 오버플로 횟수를 함께 세야 한다.
정할 때의 순서
1. 재야 하는 최대 시간이 얼마인가 → 카운터 한 바퀴 안에 들어오게 분주를 고른다
2. 필요한 분해능이 얼마인가 → 들어오지 않으면 32비트 타이머를 쓰거나 확장한다
주의
프리스케일러 값을 바꾸면 PWM 주기와 듀티가 모두 바뀐다. 실행 중에 바꾸려면 현재 비교값도 함께 다시 계산해야 하고, 그렇지 않으면 한 주기 동안 이상한 파형이 나간다.