さて、どのような制御を行うかですが、次のような処理組み合わせにしたいと思います。
1.CSMの周波数カウントタイミングは5msとして、TMR1に16MHzOSC→4MHzクロック→125μS→20000カウント。
2.TMR0で数えるが8ビットでは足りず、オーバーフローをソフトで数える。去年PIC12F1822でやったときは500kHzぐらいだったので、1000カウントぐらいのはずなんですが。
3.CSMのスタートを管理し、スタートしたら、まずは4キーを4回スキャンして平均値を判定基準値として覚えておく。この立ち上げには20mSぐらいかかる。
4.常々は5mS*4キースキャンし、閾値との差が規定値(とりあえず30にした)を2回続けて越えたらキー入力ありとして、該当チャネルのキーコードASCIIを記憶する。
5.i2cの方はこの間作ったi2cキーパッドのコードを流用。READが来たら、記憶したコードを応答する。
ところで、この基板を使用した第一番目試作プロジェクトでは簡易周波数カウンタ、二番目が基板外側にrtcをつけ制御するRTC-8564NB使用のクロック時計機能試作実験です。三番目がDTMFキーを使うi2c接続テンキー実験でした。詳しくは次のホームページのWHAT'S NEWをご覧ください。三番目は未掲載。CSMはこれから。
http://chitose6thplant.web.fc2.com/