2017/06/25(SUN) 【Nチビ】デジタルスピードメーターを割り算する
さて続編なしかと思いきや
ちょっと仕事でストレス満載なので
アルゴリズムでも空想して気を紛らわすwww

相変わらずPICマイコンで作ろうとしているわけで
一定間隔のうち磁力センサーが何回反応したか?をカウントして
速度表示するというプログラムを作るわけだ。
しかもアセンブラでwww

んで、割り算をする必要があるのだが
アセンブラで割り算なんかできるわけない
ということで
オーソドックスややり方で実装しようかと。
なに方式っていうんだっけかな?
割り算の手書きをそのままアルゴリズムにする方法。
たとえば、69 ÷ 10 の場合
10真数だと
フォト

するわけだ
商が 6 で、余りが 9 となる。
んじゃ2進数だと
フォト

なので
フォト

となるわけだ。
この手順を紐解いて
アルゴリズムをプログラムへと落す
まぁ10進数の割り算と一緒ね。
フォト

違うところといえば、
「0」「1」しかなので、
都度あまりが1010(10)で割れるかだけを
考えればいい
フォト

「余り」をまた1010(10)で割る
フォト

というのを繰り返して
最後の桁まで計算したら「商」「余り」が求まる
フォト

単純なアルゴリズムですね。
まぁあまり速度はもとめないから
この方式でいいかな?
もっと画期的な計算方法もありそうだけどね。

あ、そうそう回路変えました
PORTAとPORTBを入れ替え
フォト

前の回路だとRA5で磁力センサーの入力を
カウントしようかと思ったんだけど・・・
PORTAの入力って入力割り込み拾えないのね・・・
ということで入れ替え