(toppers-users 2284) Re: 雑談:割り算と条件分岐

M.Kogan nemuri @ mui.biglobe.ne.jp
2006年 2月 2日 (木) 11:12:14 JST


古賀(古賀製作所)です。
みなさまはじめまして。宮川さんこんにちは。

これまでなかなかTOPPERSを使う機会が無くてうじうじしてたんですが、
やっと使わせていただくことになりそうです。(JSP/V850)
今からわくわくです。
まずはTOPPERSプロジェクトにかかわる全ての皆様に感謝申し上げます。

で、早速雑談から入ってしまうんですが・・
> ---- 以下は更に暇な人用 ----
(中略)
> 32768/32 = 1024回/秒の割込みが入り、
> 1秒が1024msとなり約2.4%早く時刻が変化しますね。

やっぱりOSの基準時刻(tic)って分周(固定)で出すのが普通ですか?
うちは通常コンペア使って割り込みかけるので毎回周期をいじれます。
精度を出す必要があるときは、その周期を常時微妙にいじることで
割込みを平均的にバラつかせてかつ全体の時刻の正確さをクロック精度
まで追求することができます。

上記の例なら1000回の端数が 32768%1000=768 ですから、
1000回の割込みで32768クロックになるように、232回を32クロック
768回を33クロックとします。
これを平均的に混ぜるためにはBresenhamの線分描画アルゴリズムを使います。
X軸を1000ドット進む間にY軸を768ドット上げるような処理と同じです。
加減算とif文でできるので高速です。
Bresenhamで検索してみて下さい。プログラム例が見つかると思います。

# 宮川さんのご指摘で、制御で使うならこれで TIC_NUME=TIC_DENO=1
# のまま使った方が良いんじゃないかと思いました。

# Bresenhamが一番良い解法かどうかはわかりませんが。
# (あるとき見つけただけ^^;)



---------------------------
有限会社古賀製作所 古賀正男