8pin AVR LFO 机上検討2
8pin AVR LFO 机上検討2
8pin AVR LFO 机上検討1からの続き。
ところでADC値は10bit(1024レベル)で、これが (すなわち )にリニアにマッピングされることが望ましい。ADC[9:0] を {ADC[9:6], ADC[5:0]} とビット分割し、上位4bit( ADC[9:0]÷64 の商 )として に対応する値を取り出し、同時に余り = ADC[9:0]%64 を得る。商で256ckの割り込みが何回になるかを決め、余りは補正する役を担う。
補正は直線補間でも良いが、ここでは をパラメータとする補間関数 を定義する。は、
といった境界条件を持つ。これより考えれば、が1増えるとレンジが倍になるわけで、
、
すなわち、
となる。を(テーブル等で)定義すれば、これに定数を掛けることで補間関数を算出することができるとわかる。
なお現実的にの取りうる値はからである。
に対応するADC値まで書き入れると次表のようになる。
ADC | [Hz] | [sec] | ||
---|---|---|---|---|
0 | 0 | 1 | 244 | |
64 | 1 | 2 | 122 | |
128 | 2 | 4 | 61.0 | |
192 | 3 | 8 | 30.5 | |
… | … | … | … | … |
896 | 14 | 16384 | 0.0149 | 67.1 |
960 | 15 | 32768 | 0.00745 | 134 |
(8pin AVR LFO 机上検討3へ続く)