![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
PIC12F629をC言語でプログラミングしています。
GP2ピンをデジタル入力としてスイッチを接続しGP4をデジタル出力
としてLEDを接続し、スイッチを押すたびにLEDが点灯、消灯を繰り返す
ようにプログラミングしてみました。
ところがデジタル入力のピンをGP0,GP1に変更しピンにスイッチを
接続し入力しても同じように動作しません。回路に電源をいれた瞬間
LEDが点灯しスイッチを入力しても点灯したままです。
GP0,1をGP2と同様にデジタル入力として使いたいのですが、単にピンの
番号をプログラム中で変更するだけではダメなのでしょうか?
ご教授おねがいします。
No.1ベストアンサー
- 回答日時:
はじめまして,
私も趣味でPICの魅力にはまっている一人です.
回路図もソースもわかりませんので,想像の範囲でお答えしますと,PIC12F629に内蔵されているコンパレータの初期化が行われていないのではないでしょうか.手持ちにあったPIC12F629/635のデータシートではP35~P37に説明があります.(先月マイクロチップ社のHPよりダウンロードしたものです)
P35に記載されている"6.0 COMPARATOR MODULE"内蔵コンパレータの制御はCMCON(19H)レジスタで行います.このレジスタのデフォルト値は00000000Bですので,CM2,CM1,CM0ともゼロクリアされています.CM0:CM2の意味はP37にありますが,オールゼロの意味は”不使用”ではなく,コンパレータを(使えるように)初期状態にセットします,という意味で,各種ピンは,GP0,GP1をアナログに,GP2をデジタル入出力にセットします.質問者様の文脈から察するに,GP2は動いたのにGP0と1の(ディジタルIOとしての)I/O動作が期待に反したことに近いと思います.
ですので,コンパレータ機能を使わずにGP0,1,2をディジタル入出力で使う場合には,このCMCONに7H(CM2:CM1:CM0=1:1:1)を書き込まなければなりません.一般的には,スタートアップルーチンでTRISIOレジスタにGPIOをセットする手前にCMCONをconfigureします.
最後にアドバイスになるか否かわかりませんが,データシートや仕様書が間違っていることは本当に稀です.汎用ディジタル入出力として使える,と書いてあれば必ず使えます.ただし,ことPICの場合は小型で多機能である反面,ピンの共用がかなり激しく,思わぬところで勘違いを起こします.偉そうに言っていますが,私も実は毎回はまっています.定番のPIC16F84で作成したソフトをPIC16F88に持ってこようとした時はANSEL(アナログ入力の仕様設定)にやられました.またつい最近,非常に単機能なPIC12F509を使い始める時にも,GP2がTMR0のクロック入力とかぶっていて,OPTIONレジスタのデフォルト値がTMR0を優先させていた為にやはりGPIOが動かない,という現象にはまりました.
その時あまりにも悔しかったので備忘録としてブログに挙げてあります.お暇だったら見てください.
http://fp-masamichi.cocolog-nifty.com/pic/2009/0 …
私も異なるPICを使う度にはまっている状態ですが,いずれにしても最後はデータシート通りにちゃんと動きます.PICを信じてやってください.
参考URL:http://fp-masamichi.cocolog-nifty.com/pic/2009/0 …
ご回答いただきありがとうございます。
ご指摘にありましたCMCOMレジスタにデータをセットしてみました。
CMCOM=0x07;
この1文をIOピンの初期設定を行っているサブルーチン書き込んだ
だけでGP0,1ピンをデジタル入力として使えるようになりました。
プログラムのソースコード、回路図等を掲載したかったのですが、
参考書のサンプルソースなので掲載してはよろしくないのでは
と思い掲載しませんでした。
参考書 オーム社 C言語ではじめるPICマイコン
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4- …
この本のP84,85に載っているプログラムです。
(よくみるとこの本にCMCOMレジスタの説明も載ってましたね^^;)
ブログも今度ゆっくり拝見させていただきます。
今回はどうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CPU・メモリ・マザーボード HP製パソコンのBIOSの立上げ方を教えて下さい。 2 2022/10/28 18:28
- その他(趣味・アウトドア・車) Arudino nanoが正常に動作しない原因 1 2022/10/30 18:29
- 照明・ライト 懐中電灯は、スイッチを一回押すとランタン用のLEDが点いて、もう一回押すと懐中電灯用の別のLED電球 1 2023/04/05 20:18
- iPod・ウォークマン・音楽プレーヤー パソコンのHDMI出力をオーデオに使うのは音質上良くないのでしょうか。 4 2022/04/14 19:50
- その他(住宅・住まい) LED照明の片切スイッチの配線 4 2023/05/05 11:19
- その他(パソコン・周辺機器) USB端子間に挟んで使う、スイッチのような物は売られていますか。 3 2022/08/25 22:26
- 照明・ライト LED照明器具について ダウンライトを断熱材施工器具および 密閉器具対応のLED 100V6W E1 4 2022/06/24 23:38
- 電気・ガス・水道業 電気・電波はそれぞれ秒速30万km、1秒で地球を7周半する光と同じ早さだと言われています。 もし、日 6 2023/06/10 21:16
- LANケーブル・USBケーブル これで接続方法はあっていますか? 2 2023/06/06 20:30
- 車検・修理・メンテナンス 使用してないナンバー灯やバックランプはそのままでも車検に通りますか? 3 2022/07/23 11:45
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ATX_12Vの電源ですが、普通は8...
-
CMOSセッティングエラーの直し方
-
電源交換後、OSの起動ができな...
-
CPU交換後、動作しない。
-
ICの1ピンの見分け方について
-
ベアボーンPC(IDEQ 330G)が起動...
-
ハードディスク交換
-
メモリ増設スロットのピン数
-
デジタルビデオカメラのデータ...
-
中国戦闘機が日本の航空自衛隊...
-
「2.5インチ用外付HDDケース」...
-
インテル付属のCPUファンですが...
-
ハードディスクのジャンパーピ...
-
SSDの内部ロジック構造
-
スリムCD-ROMドライバコ...
-
大4ピン電源のピンの外し方
-
マザーボードのピンに接続され...
-
AOpenのマザーボードの配線を教...
-
グラフィックボードの補助電源...
-
no keyboard detectedと表示される
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATX_12Vの電源ですが、普通は8...
-
大4ピン電源のピンの外し方
-
USBのピン数について(マザーオ...
-
ICの1ピンの見分け方について
-
CMOSセッティングエラーの直し方
-
CPUのピンを保護して発送するに...
-
SATAの電源は,なぜピン数が非...
-
ループロックがはずせず困って...
-
グラフィックボードの補助電源...
-
自作PC用のPOWER LEDの挿し込み...
-
自作機フロントUSB配線ミスの可...
-
ATX電源の-5V端子について
-
CMOSクリアで、ジャンパのショ...
-
ジャンパーピンと六角ドライバ...
-
PC電源の交換について教えてく...
-
DELLのノートPC用の電源アダプ...
-
ケースファンが回りません。
-
ATX電源の24ピンとは別に分岐す...
-
Power LEDが点灯しない
-
HDDのジャンパーピンの設定
おすすめ情報