サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

ベストアンサー
すぐに回答を!

dspicについて

2010/08/06 19:57

初めてdsPICを使用して回路を設計しています。
しかし、Aポートのうちの何本かのピンが、出力はできても
入力ができない状態になっています。

スイッチをつなげてon/offを行うと、ピンとGND間の電圧は変化しているようです。
また、TRISの設定は間違っていません。

使用しているのはdsPIC33FJ32MC202で、コンパイラはC30です。

わかる方がいらっしゃいましたらよろしくお願い致します。

質問者が選んだベストアンサー

ベストアンサー
2010/08/08 12:08
回答No.2

>スイッチをつなげてon/offを行うと、ピンとGND間の電圧は変化しているようです。

曖昧な表現ですね。プルアップがきちんと行われていますか?
I/Oピン電圧が0.2VDD以下ならばLow、0.7 VDD以上ならばHighです。この値になっているか確認して下さい。

ちなみに内部プルアップは、CHANGE NOTIFICATION REGISTERを設定するば可能のようです。

茶黒赤金ならば1KΩです。無駄な電流が流れますが、不具合の原因とはならないでしょう。


>RA0,1及びRB0~3が入力不可でした。なぜかRA2のみ使用可能でした。

これって完全にアナログポート(AN0-AN6)と一致してますね。
デフォルトのアナログモードとなっているためデジタル入力できないのではと思います。
デジタルモードに変更するには、AD1PCFGL レジスタを設定します。

お礼

2010/08/08 15:52

ご回答ありがとうございます。

プルアップですが10KΩ(茶黒赤金)で行っています。

また、電圧に関してもお教えいただいた条件を満たしておりました。

そのほかに考えられる要因はございますでしょうか?

ありがとうございました。
アナログの設定を行うことによって無事に解決しました。

noname#230358 質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (2件中 1~2件目)

2010/08/07 18:38
回答No.1

ペリフェラルの設定とかち合ってるだけでは?
どのピンが入力ができない状態になっているか書きましょう。

全ピンですか?
となると
(1)LATAのほうを読んでいる
(2)10.4 I/O Port Write/Read Timing を守ってない
が怪しいですが
(0)TRISAをリードして1Fhかどうかを確かめてPORTAを読む
検証コードを書いてみて。

お礼

2010/08/07 19:50

ご回答ありがとうございます。
Aポートのピンがすべて入力できない状態になっています。
よろしくお願いいたします。

ご回答ありがとうございます。
私の知識では理解しかねましたのでコードを記入させていただきます。

main()
TRISA = 0xFFEF;
TRISB = 0x000F;

while(1){
if(PORTSxbits.Rxn == 1){
//処理
}
{
//処理
}
}

また、こちらの確認不足で申し訳ないのですが、入力不可のピンを間違えていました。RA0,1及びRB0~3が入力不可でした。なぜかRA2のみ使用可能でした。
その他のピンはLCD制御用に使用していて、問題なく使用できています。
以上、よろしくお願い致します。

noname#230358 質問者

関連するQ&A

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。