朝から制御技術関連の調べもの…と思ったらPICマイコンのことで相談を受けた。
PORTA(全て出力で使用)のRA0〜RA3の出力を変えるとRA4の出力が勝手にLになるのだそうだ。PICなんてもう3年以上触ってないのでだいぶ忘れた。とは言えこの問題にはなんとなく心当たりがあったので、人に貸しっぱなしになっている本やらWebを探して、原因らしきものを見つけた("PIC BCF BSD"でぐぐった)。
いますぐPICをやめてAVRに移行すべき10の理由 - やねうらお−ノーゲーム・ノーライフの(7)や電子工作室の「注意9」にあるBSF/BCFの仕様が原因なのだろう。言われてみれば、昔PICを使っていたときは出力ポートにBSF/BCFを使わずに、ポート状態を保持する内部変数に値をセットしてから丸ごとポートに書き出すようにしていた気がする。でも詳しい理由は忘れていた。
原因は見付けたが当人が会議に行ってしまったので関係ありそうな箇所を印刷して机の上に置いておいた。これ以上介入する必要も無いだろうから気を取り直して昼まで制御技術の調べもの。

午後からは昨日途中になっていたデータ転送の高速化のバグ探し。テスト用の短いコードで実験してみたらちゃんと動くので、本コードになにか見落としがある。地道にデータの流れを追っていったらわりとすんなり原因が見付かった。修正もすぐに済んだ。こんな調子が良い日は久しぶりだ。