村脇です。
御意見有難う御座居ます。
> 安価なロータリーエンコーダ
確かに安いものは¥200位からありますが、高いものは、その何十倍もします。
価格帯が広いので、「安価」と十派一絡げにするのは、如何なものでしょうか?
1回転30パルス超になると、そう極端に安いものはありません。
> XORゲートやD-FFのハードつけるなら少しぐらい複雑でもソフト処理を選ぶと思います。
とか
> チャタリングも含めてソフト処理でいこう
という考えがある事は元より承知してます。
ロータリーエンコーダに付けるプルアップ抵抗をどうするかで流儀が分かれるみたいです。
MPU内蔵のプルアップ抵抗を使うといった人には、御指摘の流儀が多い様です。
一方、ロータリーエンコーダを基板に付けてしまう人や、FPGA/CPLD等を搭載している人等は、
プルアップ抵抗やチャタリング処理等をハード的に済ます流儀が多い様です。
4490等の専用LSIが勝手にやってくれますので、何も考えずに済みます。
VHDLやVerilogならロータリエンコーダのIPコアを呼ぶだけですし。
> ネット上に見られるのは大抵割り込みを使ってません。
私とは全然異なる頁を見て居られるのかな?
ぐぐって引用元を辿って行くと、次の様な感じに見えます。
エッジトリガ割込み : 田中浩樹さん、a5403さん、里杏さん
タイマー割り込み : ELMさん、InHisTimeさん
ポーリング・割込無 : 写真で見る工作室、橋本商会
位相計数モード ; テクロボさん
ハードウェア処理 : 沼津高専、FPGAの部屋
使えるMPUが限定される位相計数モードと、ハードウェア処理を除外すれば、割り込みを使う人がネット上では大半だと感じます。
トラ技・DWM誌・DDT誌は、ハードウェア処理が多い様です。(雑誌の性質上、当然でしょうけど。)
> そんなにメモリ使うわけでもないし
確かにそうですが、割込無でポーリングした方が、CPU資源の消費量は多いのでは?
エッジトリガが検出できるピンを、余らせたり、LED点灯とかの他のピンで十分な使い方をしている位なら、
有効活用法として、非常に簡単なコードを紹介しましょうというのが、そもそもの話です。
ミーティングの時から何度も述べてますが、ソフトで処理してメモリ食わないのと同様に、ハードで処理しても大したものではありません。
専用のLSIも何種類か出てます。昔、ボールマウス等に内蔵されていた位なので、格安です。
従って、FPGA/CPLDを搭載してればその余白に、基板に余地があればそこに、ハード処理を押し込むのは自然な事です。
処理速度を気にしてアセンブラで組む位なら、ハード処理した方が余程手っ取り早いです。
ロータリーエンコーダ取付基板の余地に納まってしまうでしょうし、コストも安い。
ハード処理とソフト処理のトレードオフが、食わず嫌い無しに読める事は、組込技術者に必要な1つの資質なのでは?
脱線しますが、
「AとB、入力端子が2つあり、その高い方の電圧を、端子Cから出力せよ。」といったら、
MPUのADCでA・B2端子の電圧を測り、DACで高い方と同じ電圧を作ってC端子から出力する者が居ます。
間違ってるとは云いませんが、そんなのOpAmp1発で済む事なのに。
最近は、こういう傾向なんでしょうかね?
ハード処理とソフト処理の間に、無用な隔壁を設けているというか、トレードオフを教える人が居ないというか。
2012年6月19日 15:30 kaz zanak <
cask...@gmail.com>: