マイコン工作実験日記

Microcontroller を用いての工作、実験記録

パルスダイアル対応

2010-08-06 23:00:50 | Weblog
Gadeget1に向けて電話機ジャケットの体裁を整えていたら、パルス・ダイアルに対応していないことを思い出しました。使用している電話機は10PPS, 20PPS,トーンの選択ができるので、この際全部対応することにしました。

これまではトーン・ダイアルにしか対応していなかったので、10PPS, 20PPSに電話機の設定を変更すると、ダイアルした数に対応するOn-hook/off-hookのイベントが発生していました。このイベントの数をカウントすれば、パルスでダイアルされた数が判定できることになります。細かいことを言うと、パルス信号のメーク率の規定なんかもあるのですが、そんなもん判定しなくても実用上は何も困らないでしょうから気にしないことにします。On-hookを検出したら、一定時間待ってみてその間にoff-hookが検出たらパルス信号があったと判断することにします。タイムアウトが発生したら、ほんとうにOn-hookされたと判断します。

タイムアウト時間としては200msを設定。毎秒10パルスの10PPSのさらに倍の余裕をとってあります。そのため、10PPSと20PPSのどちらでもパルスダイアルを検出できます。ひさしぶりにパルスダイアルを使ってみると、次の桁をダイアルするのにずいぶんと待たなきゃならないので、えらい不便です。まぁ、好んでこれを使うことも無いわけですが、話のネタとして対応しているみたいなもんです。いちおう、これで黒電話をつなげることも可能となったハズです。

じつは、Gadget1に向けて大慌てでやっている作業があるのですが、その件についてはひと段落ついてから改めて報告したいと思います。