久しぶりに利用させていただきます。
現在、USB-IOを利用し、2桁の7セグメントLEDを点灯させるという処理を行っています。
VBのフォーム上でボタンをクリックした際、数字が1,2〜・・・と増えていくものを作っています。
ポート0で点灯制御をしており、ポート1の0ビット目と1ビット目でそれぞれ、1の位と10の位のダイナミック点灯制御を行っているのですが、1の位と10の位が同時に表示されずうまくいきません。
情報送信⇒表示させる桁をONにする⇒表示させる桁をOFFにする
というような流れで行わなければならないのですが、表示させる桁をOFFにするところでうまくいかないようです。
どのようにすれば上手に表示させることができるでしょうか?
ちなみにVB.net2003を使用しています。
OSはwindowsXPプロフェッショナルです
どのような回路なのかわかりませんので推測ですが
表示させる桁の点灯情報をハード側で保持して
いないので片方ずつしか表示できないのではないですか?
1の位と10の位の表示を高速に切り替える作戦とか
ポート0の0-3ビット目を1の位用、4-7を10の位用
という風に改造すれば同時に出せるとおもいます。(改造面倒そう)
または1の位用・10の位用とポートを独立させてしまうとか。
ポート1の意味が無くなってしまいますが。
どのような回路なのかわかりませんので
説明不足ですいませんでした。
回路の方は↓を参考にさせていただいております
http://www.technokit.biz/usb_io/7seg_setu2.html
高速に切り替える=ダイナミック点灯制御なのですが、1の位を点灯させたあと、10の位を点灯させるという切り替えを行う場合、1の位の点灯を一度消灯しなければいけないのですが、そのやり方がわからないので・・・。
説明が下手でごめんなさい。
どのようなファームを使ってるか判らないので
なんとも言えないのですが、通常はポートに
1を書き込むとON、0を書き込むとOFFですね。
ONする所のコードだけでも提示されると、
判るかも。
それにしても、2SA733とは懐かしいものを
使ってますね・・・・・
>http://www.technokit.biz/usb_io/7seg_setu2.html
>高速に切り替える=ダイナミック点灯制御なのですが、1の位を点灯させたあと、10の位を点灯させるという切り替えを行う場合、1の位の点灯を一度消灯しなければいけないのですが、そのやり方がわからないので・・・。
>
どのようにうまくいかないんでしょうか?
上記URLのサンプルプログラムを見る限り、特定ウェイト後にポート0に0を出力すればよいのでは?
我龍院忠太様・GOD様
VBの場合、処理が反対になってしまいまして、1で消灯、0で点灯という形になるんです。
点灯させるには0を出力するのですがそのときの命令が
uio_out(1,0,0)という形になって、引数の一番初めがポート番号、二つ目がビット数、三つ目がパルス(これはあまり関係ありませんが・・・)となります。
ですので、0を出力すると点灯してしまい、うまくいきません。
うぅ・・・本当、説明が下手くそでごめんなさい。
へむりん様
ポート0の0-3ビット目を1の位用、4-7を10の位用
という風に改造すれば同時に出せるとおもいます。(改造面倒そう)
それ頂きです!目からうろこが落ちました!
とりあえずは今の回路を残して、別のブレッドボードに作成してみようと思います。
>VBの場合、処理が反対になってしまいまして、1で消灯、0で点灯という形になるんです。
>
ならポート0に対して&H7Fあたりを書き込むと消灯するのでは?
(MSBは未接続だからどっちでもいいのかな。)
>ポート0の0-3ビット目を1の位用、4-7を10の位用
>という風に改造すれば同時に出せるとおもいます。(改造面倒そう)
>
ハード詳しくないから結構適当だけど、LEDを2個以上増やす予定がないならポート1
をLEDの選択ではなくデータラインとして使えないの?
「ポート0・・・1の位、ポート1・・・10の位」みたいに。
>ハード詳しくないから結構適当だけど、LEDを2個以上増やす予定がないならポート1
>をLEDの選択ではなくデータラインとして使えないの?
>「ポート0・・・1の位、ポート1・・・10の位」みたいに。
>
詳しく読んでなかった。^^;
ポート0,1合わせて12ビットしか使えないのか。orz
要するに回路がローアクティブなのに
サンプルのコードはハイアクティブになってて
上手くいかないと言うことですか。
単にデータービットを反転させればいいのでは。
repeat
uio_out 1,254
uio_out 0,128
await t_jikan
uio_out 0,255
uio_out 1,253
uio_out 0,216
await t_jikan
uio_out 0,255
loop
ツイート | ![]() |