掲載時から若干の変更を加えています。
主要な変更点は、main()
関数内でsin()ルックアップテーブル sine_lut
を用意しておき、割り込み処理内ではsin()を計算せず sine_lut
を用いるようにした点です。一般論として割り込み処理は短時間で終了させるべきで、重い浮動小数点演算を割り込み処理内で行うのは適切ではありません。書籍ではわかりやすさ優先で浮動小数点演算を割り込み処理で行う形にしましたが、より実践的には、このサンプルのように事前計算しておいて割り込み処理を単純化すべきです。