Arduino UNOで10bit PWM

ここを参考にしてコード書いた。
http://forum.arduino.cc/index.php/topic,41964.0.html
Timer1が16bitなのでこれを使えば良いと言っている。

PWMはどれでも10bitモードが使えるのかな?

#define ledPin 9
void setup()
{
  /**********************************************************************************/
  // Set pwm clock divider
  /**********************************************************************************/
  TCCR1B &= ~(1 << CS12); //CS12を0にする
  TCCR1B  |=   (1 << CS11); //CS11を1にする
  TCCR1B &= ~(1 << CS10);  //CS10を0にする
  //CS10 CS11 CS12 = 0 1 0  => プリスケーラ8分周                            
  /**********************************************************************************/
  // Set pwm resolution  to mode 7 (10 bit)
  /**********************************************************************************/
  TCCR1B &= ~(1 << WGM13);    // Timer B clear bit 4
  TCCR1B |=  (1 << WGM12);    // set bit 3

  TCCR1A |= (1 << WGM11);    //  Timer A set bit 1
  TCCR1A |= (1 << WGM10);    //  set bit 0
  // WGM 10 11 12 13 =  1 1 1 0 => 10 bit fast PWM
  pinMode(ledPin, OUTPUT); 

}

void loop()
{
  analogWrite(ledPin, 500);
}

クロックのレジスタCS10 CS11 CS12が 0 1 0 だから
プリスケーラより8分周した値がクロックとなる。

また10bitのPWMだから、PWMの波形が一周するのに10bit=1024階調あるので
PWMの周期は

1 / 16MHz(Arduinoの外部発振器周波数) x 8 x 1024 = 約 0.5 ミリ秒

オシロスコープで波形を確認すると、そのようになっていた。