未知の函数を三次補間で近似する。
構文: interpolate(xValue, xList, yList, yPrimeList)
返値: リスト
実行例 1:
実行例 2 (既知のポイントの傾きを実行例 1 とは逆にした):
未知の函数を三次補間で近似する。
構文: interpolate(xValue, xList, yList, yPrimeList)
返値: リスト
実行例 1:
実行例 2 (既知のポイントの傾きを実行例 1 とは逆にした):
参考: 定番!ARMキット&PIC用Cプログラムでいきなりマイコン制御[DVD-ROM付き] (マイコン活用シリーズ), pp.99-102
Timer1 のクロックを 1 MHz (= 16 MHz / 4 クロック / 4 分周) にすると、Timer1 は 1 μsec (= 1/(1 MHz)) ごとにインクリメントする。
16 ビットカウンターであるので、被測定パルスの立ち上がりエッジで Timer1 をスタートして被測定パルスの立ち下がりエッジで Timer1 をストップすれば 1 μsec × (2^16-1) = 65.535 msec までのパルス幅が測れる。
main.c
// テキスト p.101、リスト 11-2 のまま
.ino
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(50); digitalWrite(13, LOW ); delay( 1); }
参考: 定番!ARMキット&PIC用Cプログラムでいきなりマイコン制御[DVD-ROM付き] (マイコン活用シリーズ), pp.95-98
Timer1 を周波数カウンターに使う。Timer1 のクロックソースを外部クロックに設定し、その外部クロックの数 (下の例では Genuino101 から出力されるパルスの数) を 1 秒間カウントする。16 ビットカウンターであるので、分周比を 1 にすれば (1/1) × (2^16-1) = 65.535 kHz まで測れる。さらに高い周波数まで測りたいときは分周比を上げるか測定時間を短くするかする。
main.c
// テキスト p.97、リスト 10-2 のまま