ハードウェア実験

今日、どうしても素敵な動きをしてくれるタートルロボットがあまりにくやしかったので、家に帰ってからソースを見直す。

で、思ったことが一つ。
メモリ(CNT4)からレジスタW に値をコピーするときに、

MOVF CNT4, W

とやっていた。
MOVF f ,bは、
b=0のとき、fをレジスタWに転送。
b=1のとき、fをメモリWに転送。(変化しない。Zフラグが変化する。)
という関数。
この最後のWはまずくないか?
でも、教科書のステッピングモータのやつも
MOVE CNT4,W
になっていた。
けど、この教科書の例は悪い例としてのっていたので、頼りにならない。
ハードウェアだったみなさん、どう思います??
マズイっぽい??



追記:
やはり、明らかにランダムに動く理由はこいつが原因ではあるまいか。レジスタWの値によってWにCNT4が代入されるかどうかが決まる。ってことは、Wの1ビット目が1だったらWはそのままになる。レジスタなんかには実際なにが入ってるかなんて保証されていないから、CNT4を転送できなかった場合、そのあとの
MOVWF PORTB
でPORTBにどんな値が入るかわからない。
だからランダム制御というわけかwww。
マジOTZだ。