PICプログラム開発 二転三転そして完成2022年01月08日 20時53分06秒

あれからまたPICの仕様を変更した。その理由はまた別の欄で記す。

+100V電圧監視を止めたのでPICのコンパレータは使わなくなり、動作としては単純になった。なのでそれほど時間もかけずに完成するだろうと踏んでいた。ところが、思わぬところに仕掛けられていた地雷を踏んでしまい、大いに手間取ってしまった。

コンパレータを使わないのだから、当然それに関係するレジスタ処理を書き込む必要がないと思い、プログラムから削除した。PICのピンアサインは次の通りである。

GP0  +100V電源起動用コントロール(出力)
GP1 NC
GP2 +28V電源起動用コントロール(出力)
GP3 スタンバイスイッチ(入力)
GP4 モニター赤色LED(出力)
GP5 モニター緑色LED(出力)

PICにプログラムを書き込んでおもむろに評価基板で動作確認をする。そうすると、ほかはきちんと動いているのに、GP0にだけなにをしても信号が現れず、頭を抱えてしまった

それらしいと思われところを次々とコメントアウトして、とうとうLEDをただ光らせるような非常に単純なプログラムにしたら、やっとGP0に信号が出た。が、そこへ少しでもちょっと処理を書き込んだだけで沈黙してしまい、うんともすんとも言わない。
この原因を探るのに一日費やしてしまった。

これに関することはデータシートには書いていない(と思う)。こういうとき、ネットはすばらしい。検索したらちゃんと書いてくれている方がいた。対策はたった一行
CMCON = 0x07
を書き込むだけ。CMCONはコンパレータに関するレジスタ。使わないのにこれを書かないと異常動作するとは!

原因がわからず迷路にはまり込んだときは、MPLAB X IDEのバグではと疑ったことも。犯人がわかったときは拍子抜けしてしまった。

原因がわかればあとは早い。昨夜、プログラムが完成し、実機に入れ込んだ。状態が遷移するに従って二色のLEDがチカチカ光る様子は、見ていてなかなかおもしろい。

写真の絵は手書きの状態遷移図で、これを見ながらプログラムを書いた。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://john.asablo.jp/blog/2022/01/08/9454583/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。