いつでも医師に相談、gooドクター

dspicをCCS-Cでプログラムする場合のオープンドレインの設定方法についてお尋ねします。初心者ですが、内臓12ビットADコンバータを利用する事情がありdspicを利用しています。picから、相手のデバイスに5Vのクロックを与えるために、別途5V電源を用意してpicのピンに接続して、そこから直接相手のデバイスに接続して、クロックを送るようにしたいのですが、うまく5Vのクロックを発生させることができません。dspicは3.3v電源(内部で2.5vにレギュレート)なので,通常のoutput_low(PIN)、output_high(PIN)の繰り返しでは3vのクロックしか発生できません。そのため、オープンドレイン接続で、外部から5vを接続して、それをコントロールして5vクロックを発生させる必要があります。プログラムにはCCS-Cを使用しており、マニュアルにはオープンコレクタ指定はoutput_float(PIN)、その解除はoutput_drive(PIN)となっているので、それを用いて以下のように記述して動作させているのですが、5vが連続して通電してしまいクロックが発生しません。なお、私の理解ではdspicでは任意のピンがオープンドレインに指定できると思っています。どなたか分かる方がいれば回答をお願いします。
#use fast_io(G)
#use delay(CLOCK = xxxx)
main{
set_tris_G(0x00);{
while(1){
output_float(PIN_G0);
delay_ms(100);
output_drive(PIN_G0);}
delay_ms(100);
}

gooドクター

A 回答 (1件)

0を出力するときには、オープンドレインに関係なく、ゼロを出力しておく必要が有ります。


1を出力するときには、オープンドレインに設定したうえでポートを入力に設定する必要が有ります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

人気Q&Aランキング