序 2008-05-08 †このプロジェクトは,昔,PIC16F84用にアセンブリ言語で書いた自作エレキーをSDCCに移植して,他のPICに移植しやすいようにします.16F88や12F683など,16F84(A)よりも高機能のPIC用に移植してから,エレキーの機能を追加します. これは,一連のPICのソフトをC化するプロジェクトの一巻です. 回路図 †昔から使っている回路です. → PIC/ELEKEY 16F84Aでも大丈夫です. トランジスターは,2SA, 2SCで,HFEがある程度高ければ,何でもOKです. 消費電流は8.5mAあります(実測値)ので,固定局・常置場所・モービルでは問題ないですが,バッテリー運用などにはもう少し減らしたいところです.それは,12F683, 16F88に移植するときにできると思います.5V以外の電源の場合は,78L05(78L005)で十分です. 16F84(A)のMCLR(4ピン)につながっている抵抗2本,電解コン,ダイオードはなくても動くことがありますので,最初は直接VDDにつないでみてください.起動しなければ,付けてください. *1は,セラミック発振子(振動子)です.クロックに依存しませんので,使用するPICの仕様の範囲(4〜20MHz)でOKです. どこの会社のものもセラロックと呼ぶ人が多いですが,セラロックは村田製作所の商標です,念のため. 手順 †
という二段階で行います.第1段階がなかなかたいへんです. PICC-Lite対応化 †ようやくできたように思います(2008-05-10).どうも,残っていたアセンブリ言語のソースが最終版ではないようで,きっちりCに置き換えただけでは,まともに動いてくれませんでした^^; 最後の短点が一回おきに抜けたり,打ってもいない長点がでたり. 現用のエレキーのソースはない,ということになりそうで,すごく工夫を凝らしたはずなのに,どう工夫を凝らしたか,永遠のなぞとなりました. しかし,エレキーの場合,かなり工夫しても,打ち心地の差はそれほど大きくないので,あきらめます^^; ソースは,なるべく早いうちに公開します.ほぼIambic Aに近い打ち心地です.Iambic Bに慣れている人には打ちにくいでしょう. SDCC対応化 †実は,PICC-Liteの前に,先にSDCCで書き始めていたのです.SDCCで,よく解らないトラブルに見舞われ,PICC-Liteに移行しました. ですが,その後SDCCのトラブルも解決したため,PICC-LiteからSDCCへの以降は,ほとんど何もしないで完了しました. 最適化がPICC-Liteより劣るSDCC用にしても,まだプログラム領域は半分以上空いていますから,いろいろなことができます. しかし,SDCCに持ってきたのは,16F84(A)でいろいろなことをやるためではなく,12F683や16F88に移植するためですので,しばらく打ち心地を確認して,ベースとなるCのコードは完成とします. ソース †最終確認中です. 動作概要 †両方のパドルが押されているとき(スクイーズ時)は,現在の符号が終わって短点1個分のスペースが終わった時点で,パドルをみて次の符号決定します. もしパドルが片方しか押されていなけば,今出ている符号の開始時から反対のパドルをチェックして,押されれば次の符号は,反対の符合になります. ただし,スクイーズ時で,長点が出ているときには,符号の2/3が終わったところから,短点のチェックをします.こうしないと,長点の次に短点で終わる符号の短点が足りなくなります. 実際に打ってみると,Iambic Aの動作とほぼ同じです.Iambic Aに慣れた人ならば打てます.微妙に違いがあって(というか,Iambic A/Bをうたっているキーヤーでもそれぞれ微妙に違います),私が打つ限りは,Iambic Aよりもエラーが少ないです. 12F683化 † |