2

PIC18f4685で動作する4x4キーパッドを取得しようとしています。

弱いプルアップをオンにしました。適切なピンを入力/出力のいずれかに設定しますが、信号を送信すると、ビット6と7で信号が返されません。ゼロになるだけです...

PicKit3を使用してデバッグしようとしましたが、RB7を使用しており、その行のボタンを押すとクラッシュするようです。もちろん、それは信号がある程度まで通過しているに違いないことを私に教えてくれます。

ポートBの構成で特に設定する必要があるものは他にありますか?

いつものように...あなたの助けは大歓迎です。

4

3 に答える 3

2

回路図が正確にわからない場合(スケッチが役立つ場合があります)、PIC GPIOの一般的なエラーは、ADCレジスタをデジタル入力に設定していないことです。それらはアナログ入力としてリセットから出てきます。

PIC18F4685データセットのレジスタの説明19-2を参照してください。

ADCON10x00としてリセットから出てきます。すべてのアナログピンをデジタルI/OにPCFG3:0設定するには、1に設定する必要があります。

ADCON1bits.PCFG = 0x0F;
于 2012-05-24T14:08:50.927 に答える
2

EEサイトはあなたが答えを得る前にあなたをとても無礼に閉鎖したので、私はあなたの質問に答えるためにここに来ると思いました。

135ページの表10-3を確認してください。これには、ポートBピンのすべての機能がリストされています。RB6とRB7はデバッグピンでもあるため、これらは使用しないことに注意してください。

また、LATxに書き込んだり、PORTxから読み取ったりしていますか?同じポートに対して読み取りと書き込みを行う場合は、これを行うことが重要です。PORTxの読み取りと書き込みを行うと、まだ変更するのに十分な時間がない出力から誤って古い値を読み取る可能性があり、次の書き込みによって意図した値が消去されます。これは、LATxレジスタを持たないPICでは特に有害です。BSF / BCFのようなビット単位の操作であっても、すべての操作はポートレジスタ全体の読み取り-変更-書き込みを実行し、変更しようとしたビット以上に影響を与えます。このEEの質問への回答を参照してください:https ://electronics.stackexchange.com/questions/28744/interfaceing-a-keypad-with-a-microcontroller

于 2012-05-24T18:42:12.240 に答える
2

トライステートレジスタ(TRISB)を設定するためのコードの使用と、読み取り方法を示すことができますか。ボタンを押す前と押す間に、デジタルマルチメータ(DMM)で入力ピンの電圧をチェックしましたか?彼らは10ドルでそれだけの価値があります。

最後に、アナログピンを無効にしましたか?PIC24チップでは、次のことを行う必要があります。

AD1PCFG = 0xFFFF

デジタル入力読み取りが機能する前に。チップ上で同じかもしれません。

チップの正確なモデル番号を教えてください。

于 2012-05-25T01:26:49.583 に答える