「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



割り算のロジック、ここが凄くわかりやすかった。
http://journal.mycom.co.jp/column/architecture/084/index.html

このページの図はおよそ引き戻し法だな。正確に言うと、
引いてみて引きすぎてたら戻すということではなく、
コンペアして、キャリーを見てあらためて引くという
処理方法。コンペアは、ALU内部の処理自体は引き算
だから、2回引き算回路使うって言う意味ではほぼ
引き戻し法。うん。引いてから戻すよりこっちの方が
スマート。

このページで引き戻し法と引き放し法の処理速度に
ついても触れられてた。
とりあえずこの図を眺めてみたらアセンブラで割り算
組むイメージが明確に練りあがった感。オイラのレベル
が一つあがった。



ちなみにこのページの図はChaNさんのアセンブラロジック
と同一になってるみたい。被除数レジスタの下から商を
シフトしながら入れていくことで使用レジスタ数の削減
をしているって言う点でも一緒だった。

とりあえず頭の中が整理できたところで、このくらいは
盛り込んでも良いんじゃないかと思えてきた。周波数を
直接入力できた方が便利だもんな。

面倒なのは、シリアル入力から不定長の文字列を受け取って
齟齬無く処理するっていうロジック。使用不可文字なんかも
含めておかしなことにならないロジックにするのがアセンブラ
だと結構面倒。まぁ、仕方ない。


福島情勢。
http://www.iza.ne.jp/news/newsarticle/event/disaster/500652/
水漏れをナントカするのは漁業のことを考えると急務だと
思うんだけど、現状のような、水を運んできて入れるだけ
ってのをやり続ければ、いつまでたっても大量の汚染水を
生産するだけだろうから、循環させれば良いんじゃね?
って思ってたら、やっぱりエライ人もそう考えてた。
まぁ、アタリマエに考えればそうなるよねぇ?

で、循環させながら逆浸透膜フィルター使って。
http://gigazine.net/news/20110331_ecoa_water/
これで行けんじゃね?


http://www.iza.ne.jp/news/newsarticle/event/disaster/501005/
フクシマ50かどうかはわかんないけど、現場で必死に
がんばってくれている人達に引き続きエールだな。

どんなオプションが取り得るのかを、東電だけで考える
なんて無理なはずだから、各種行政機関がきちんと音頭
とって同時並行的に戦略を進行させていったらいいと
思うんだけど、なんか常に後手後手で場当たり的な
かんじなんだよな。


そんな中、犬だけじゃない。
http://headlines.yahoo.co.jp/hl?a=20110405-00000500-yom-soci.view-000
牛が無事に帰ってきたってお話。ココロ温まる…。

ネコの次にウシが好きというオイラにとっては、こんな
風にウシが無事に帰ってきて、人と人懐っこくしている
のを見るとうれしくなるな。


話はそれるけど、オイラは1番にクロネコ好き、2番に
ウシネコが好きなんだけど、クロネコもウシネコも、
どっちも牛柄なんだよな。多分、牛柄だからクロネコ
やウシネコ見るとうれしくなっちゃうんだろうと思う。
オイラの琴線になにかビビビと触れるんだろうな。

で、じゃぁ逆に三毛柄の牛や茶トラ、キジトラの牛が
居たらうれしいのかっていうと… そうでもないみたい。
何だろうね?この差って。




コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする




ガチャガチャでゲット。ペンタックス党ならつい手が
出てしまう逸品。





k-rゲット。かわいい。なかなかの造型。

ただ、シルバー×ブラウンかぁ。もっとサイケな感じの
色を期待してたんだけどな…。まぁ、ブラック×ブラック
よりは良かった。

レンズは透明のプラスティックでレンズっぽく出来て
いるんだけど、1枚構成でちょっとつくりが寂しい。
ウソでも良いので、何枚かレンズっぽい板を入れて
おいてくれたらよかったのにな。

あと、レンズは取り外し交換して遊べるようにして
くれたら良いのに。もちろんレンズもラインナップを
色々そろえてくれたり。ミニチュアだけでいいから
大艦巨砲主義を実現したい。

ボデー下部の透明の板は、丁度ホットシューに挿さる
形状になってて、親亀の上に小亀状態になるみたい。
まぁ、そんな使い方より普通にキーホルダーだな。


似非DDSのプログラムを検討中。

目下、フルアセンブラでサクッと作る方向で検討を進めて
きたんだけど、とりあえず4096点のsinカーブを使う考え。
で、例によって99basic使って定数テーブル作成の
スクリプトを書いてバッチリ。

さて本体のプログラムを書こうかと練り始めてみたところ、
ふと壁にぶつかった。

         割り算。

周波数を整数値で入れると、角速度を自動計算して
その後自動的に波形を出力し続けてくれるっていう
物を考えたんだけど、そうすると固定小数点ながら
割り算が必要になるはず…。いま想定しているのは
32ビット幅整数同士の割り算。

被除数は4096固定(の1/4か?)として、除数は1~20000
と結構なレンジになるので、あらかじめ定数化しておく
のはメモリ足らないし、引き算の繰り返しだと処理時間
掛かりすぎ。
普通に引き戻し法、引き放し法を使わんといけないん
だろうけど、そんなテストちまちまやるのはイヤだなぁ…。

波形生成の処理(+割り込み)は実体をアセンブラで、
メイン側をC言語で書くかなぁ?とか考えたんだけど、
割り込み1回の処理時間がシビアに短いので、C言語
からの割り込みはオーバーヘッドがちょっと…と戸惑う。


とふと思い出したChaNさんの秘蔵テクニカルライブラリ
にAVR用割り算ライブラリが載ってたような…
http://elm-chan.org/cc.html

あった!
しかも短い。とりあえず眺めてみる。

シフト命令をじゃんじゃん使っているところを見ると、
多分引き戻し法か引き放し法を使っているんだろうな。
アタリマエだけど。
これを参考にさせてもらえばオイラのプログラムにも
ちょっとのアレンジで組み込むことは出来そう。


ただ、そんなところに時間食っているより、直接
角速度をUART側から入力させちゃうてもあるよな、と
思うと、そっちの安易な方向に流れちゃう手もある…

とりあえずは簡単な方法に逃げるのがいいかな。
手を加えて色々使い勝手よくするのはその後でも
いいのだ。まずは使えるツールを準備しないと
FFTがいつまでたっても進まないから。



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする