このQ&Aは役に立ちましたか?
2007/09/18 13:01
PIC12F675 の入力読み込み が正しく出来ない
こう度々だと恥ずかしく思いますが解決したいと思いお願いすることにしました。12F675 を MOVLW B'00101010' ;GP0,2,4ピンを出力にする
MOVWF TRISIO ;入力は10Kの抵抗でプルアップしてます
GP3がLOになっているときGP2を100mS間LOレベルにしています GP2はJK-FFのクロックになっていてJKは5Vに接続してあるためGP2によって反転しますこのJK-FFのQ出力がフォトカプラを介してGP3に接続していてJK-FFのQ出力をGP2で操作します(信号線の長さが10mあります)
ところがQ出力がHIのとき ?PICはGP3がLOであると判断して ?GP2をLO/HI にスイッチさせていてしかもプログラムが LO/HI操作を一度通過した後何度でもLO/HI を繰り返しています
?のように判断していることが誤動作の発端と思いますが 原因がわかりません
今回は ANSEL = B'00000000' (デジタルI/Oモード)
COMCN = B'00000111' (コンパレータ機能をOFF)
BCF ADCON0,ADON (コンバータ電源 OFF)
CLRF INTCON (割り込み発生はさせない)に注意したつもりですがまだ足りていないようです 何方かお願いします
GP3が挙動不振な動作をしているとなると、デジタルI/Oポートに設定されていないのではと疑いたくなります。
Configuration bitsのMCLREは正しく設定していますか?
(データシート 9.1 Configuration Bits参照)
私の回答の書き方があいまいで、誤解されているようにも読み取れるので補足します。
「デジタルI/Oポートに設定されていないのでは~」の趣旨は、「GP3ポートは、MCLRの機能を備えているのでANSELの設定に加え、"__CONFIG _MCLRE_OFF"を行わないとデジタルI/Oポートにならない」です。
データシートのブロックダイヤによれば、MCLRE_ON状態でGP3を読み出すと常に"0"となることから、
>>(1) Q出力がHIのとき ?PICはGP3がLOであると判断して...
>> はいオシロスコープを借用してGP3(04ピン)を観測しましたがHIレベルに
の状態に合致すると推測しました。
プログラムのコンフィグ文で"_MCLRE_OFF"を指定しているならば、私の推測は外れということになります。
JO_O さん イシさん ありがとうございます ”何度でもLO/HI を繰り返しています” は一回だけLO/HI(JK-FFのクロックとして)の変化をさせたいのですがそうはならず何度も繰り返します お二人ともGP3入力が怪しい! のご指摘です。 デジタルIO設定は質問時のようにしていますので先ず大丈夫と思っています MCLREのほうもプログラム先頭部分とPICデータ書込み時書込み設定をしていますので多分大丈夫と思います。 GP3の切り離し ヒゲ ステップ毎の挙動監視を進めます ただお二人には早速アドバイスを頂いていながら恐縮ですが本業で
済ませなければいけないことが出てきました そちらを先に手をつけなければいけませんので結果が出るまで一寸時間が掛かりそうでいます。 すみませんが宜しくお願いします。
2007/09/20 07:29
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
毎度JOです。
PIC12F675 データシート
http://ww1.microchip.com/downloads/en/DeviceDoc/41190E.pdf
幾つか教えて下さい。
>>Q出力がHIのとき ?PICはGP3がLOであると判断して
実際にテスターやオシロでHIと確認しましたか?
JK-FFの型番は? スレーブ型? トリガ型??
このJK-FFにパスコンは入っていますか?
JK-FFにはクリアー又はリセット或いはプリセット端子が出ていますが接続先は?
毎度JOです。
GP3
↓
GP2 GP3がLの時100mSのLパルス(繰り返し??)
↓
FF(CK)
↓
Q JKがHですからCKを分周する事になる
↓
GP3
何の為のループかわかりませんが、
>>LO/HI操作を一度通過した後何度でもLO/HI を繰り返しています
仮にGP3が連続Lの時、プログラム上でLO/HIを繰り返すループに入っているのですか? そのようなプログラム??
このようなループ回路をデバッグする場合、どこかで切り分ける必要があります、わずかな「ひげ状」のパルスでも反応してしまいます、
ループの各所を一箇所づつ挙動を監視する事になります、
今回の症状としてLO/HIを繰り返すのであれば、GP3の入力を疑ってみる所からスタートですね、
QとGP3を切り離して、GP3をHに固定して様子を見るとかですかね?
毎度JOです。
遅くなっても結構ですから結果の報告をして下さい、回答者としても気になるところです、
又、結果を投稿する事により過去ログとしてデータベースの一部となります、
今後質問される方の参考にもなりますね。
JO_O さん イシさん ありがとうございます ”何度でもLO/HI を繰り返しています” は一回だけLO/HI(JK-FFのクロックとして)の変化をさせたいのですがそうはならず何度も繰り返します お二人ともGP3入力が怪しい! のご指摘です。 デジタルIO設定は質問時のようにしていますので先ず大丈夫と思っています MCLREのほうもプログラム先頭部分とPICデータ書込み時書込み設定をしていますので多分大丈夫と思います。 GP3の切り離し ヒゲ ステップ毎の挙動監視を進めます ただお二人には早速アドバイスを頂いていながら恐縮ですが本業で
済ませなければいけないことが出てきました そちらを先に手をつけなければいけませんので結果が出るまで一寸時間が掛かりそうでいます。 すみませんが宜しくお願いします。
2007/09/20 07:28
いつものことながら早速ありがとうございます
(1) Q出力がHIのとき ?PICはGP3がLOであると判断して...
はいオシロスコープを借用してGP3(04ピン)を観測しましたがHIレベルに
あってヒゲのような信号の乱れはみあたりません にも関わらず(これまで
の所業からあまり力を入れられないのですが)PIC内部ではLOレベルと判断
している様子です
(2) JK-FFの型番は 74LS107 立下りトリガです
(3) このJK-FFのためにだけということでなくACアダプターからの5Vに対して
47UF電解コンデンサと0.1UFセラミックを各1ケ入れています ICは74LS107
1ケとTLP621-2が1ケの2ケです
(4) クリアー端子は10Kの抵抗でプルアップし0Vに向かって0.1UFのセラミックコ
ンデンサを繋いでいます
以上ですが いかがでしょうか
2007/09/18 21:01
ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。