PIC16F1936を使っています。
各ポートをデジタル出力にしLEDを順に点灯させていますが
RB0に接続したLEDのみうっすらとしか光りません。
(プログラムで意図したとおり点滅はします。)
テスターで電流を計測したところRB0のみほとんど流れていませんでした。
また電源投入時にRB0に接続したLEDだけ一瞬光ります。
PICは初期状態でI/Oは入力になっているので光らないと思うんですが・・・
MPLABX+XC8で開発しています。
以下の切り分けを行いました。
・LED単体での点灯:正常点灯
・他のLEDをRB0に接続:現象再現
・他のブレットボードで作動:現象再現
データシートとかなり睨めっこしたんですがそれっぽい部分がみつかりません
ご教示いただけると助かります。
ソースは以下のとおりです。
#include <xc.h>
#pragma config CLKOUTEN = OFF,\
WDTE = OFF,\
PWRTE = ON,\
CP = OFF,\
BOREN = OFF,\
FCMEN = OFF,\
MCLRE = ON,\
CPD = OFF,\
IESO = OFF,\
FOSC = INTOSC,\
STVREN = OFF,\
BORV = LO,\
LVP = OFF,\
VCAPEN = OFF,\
WRT = OFF,\
PLLEN = ON
#define uchar unsigned char
#define uint unsigned int
void init(void){
//ポート初期化
PORTA = 0b00000000;
PORTB = 0b00000000;
PORTC = 0b00000000;
PORTE = 0b00000000;
TRISA = 0b00000000;
TRISB = 0b00000000;
TRISC = 0b00000000;
TRISE = 0b00000000;
//全てデジタル
ANSELA = 0b00000000;
ANSELB = 0b00000000;
//8mhz
OSCCON = 0b11110000;
OPTION_REG = 0b00000000;
APFCON = 0;
WPUE = 0;
}
void Wait(unsigned int num){
for (int i=0 ; i<num ; ++i) {
for( int j = 0; j < 100; ++j){
NOP();
}
}
}
void main(void){
init();
while(1){
PORTC = 0b00000100;
Wait(1000);
PORTC = 0b00000000;
PORTB = 0b00001000;
Wait(1000);
PORTB = 0b00100000;
Wait(1000);
PORTB = 0b00000001;
Wait(1000);
PORTB = 0b00000000;
}
}
No.1ベストアンサー
- 回答日時:
RB0ポートが故障している可能性が高いです、PIC_I/Oポートは±25mAまでです (RB0が出力ポート時にVCC or GND or 他の出力ポートに接続すると壊れます)
確認方法
(1) 他のPICに換えてみる
(2) RB0を他のポートに切り換えてプログラムを実行し、正常ならばRB0の不良
確認してみて下さい。
お礼が遅くなりすみません。
同型のPICが手元になかったので新たに買ってきました。
早速試したのですが仰られた通りRB0が故障していたようです。
意図したとおり動くようになりました。
今までこんな事もなくガッツリ悩んでしまっていたので本当に助かりました。
ありがとうございました。
No.2
- 回答日時:
PICの出力ポートは、添付画像に描いたような回路になっています。
大まかにはこんな感じです。まちがってたらすみません。回路にミスがなければ、RB0ポートのFETが壊れている可能性があります。
FETは過電流が流れると、徐々に破壊がすすみ抵抗値が高くなり最終的にはオープンモードで壊れます。
壊れる途中の段階だと、ポートに負荷を繋いだときのの出力電圧が低くなることが、分かるのではないでしょうか。
お礼が遅くなりました。
何度かブレットボードで指し直したりしていたのでその時間違って電源をRB0に接続してしまったかもしれません。
(RB0の隣だったのやってしまったと思います。)
仰られているとおりある意味回路のミスですね。
具体的に図まで添付していただきありがとうございました。
FETが壊れるなんて考えた事もなかったのでご説明いただき勉強になりました。
今後に活かさせていただきます。
本当にありがとうございました。
お二方にBAを差し上げたいのですが残念ながら出来ないので
回答順で付けさせて頂く事をお許しください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(パソコン・周辺機器) USB端子間に挟んで使う、スイッチのような物は売られていますか。 3 2022/08/25 22:26
- 車検・修理・メンテナンス 使用してないナンバー灯やバックランプはそのままでも車検に通りますか? 3 2022/07/23 11:45
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Microsoft ASP LEDで電光掲示板に「A B C D E」と表示したいのですが・・・ 1 2023/07/04 07:37
- Windows 10 (続質問です No.3)Windows 10 ノートで電源OFF してもWinfi ランプが消えない 14 2023/07/22 19:48
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- 照明・ライト 壁取り付けホタルスイッチ 4 2022/06/15 16:52
- バッテリー・充電器・電池 4.5Vくらいで動くオルタネイトスイッチ 2 2023/06/06 07:57
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TCPポート443を開く手順を教え...
-
PS3でオンライン接続したいので...
-
ポート解放で悩んでいます。(P...
-
PS4をNATタイプ3からNATタイプ2...
-
ポート開放の方法について
-
デイトナ優勝時のRX-8のロータ...
-
先程までは繋がっていたPS3がネ...
-
MGSシリーズの周波数教えて...
-
ワードでカーソルが動かない
-
PS5でボイチャで、自分の声がよ...
-
NURO光10GでPS5利用時のネット...
-
PS5でマスターデュエルやってる...
-
コントロールパネルを開こうと...
-
スプラトゥーン通信対戦に必要...
-
steam のゲームでゲームパッド...
-
valorantのロードが遅め 1ラウ...
-
フォートナイトについての質問...
-
ゲームパッドの異常?(上キー...
-
AOSSとWPSのつなぎ方がわかりま...
-
スマブラXでのエラーコード3110...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCPポート443を開く手順を教え...
-
とても急いでいます。Minecraft...
-
マインクラフトのマルチサーバ...
-
大至急!PS3「DNSエラー...
-
Switchでマインクラフトをフレ...
-
UPnPは無効にしたほうがいいの...
-
レオネット ポート開放
-
ポート開放できなくて困ってい...
-
PS4 ネット
-
ポート開放したいがマンション...
-
PS4をNATタイプ3からNATタイプ2...
-
UPnPでのポート開放ができません
-
cod ww2のポート開放についての...
-
Minecraft サーバーに入れない。
-
PS4の虹6で一部のフレンドだけ...
-
ポート開放の方法について
-
FTPサーバーのポート解放
-
ファイアウォールにはじかれる...
-
マインクラフト統合版マルチプ...
-
2台同時に同じゲームをするとき...
おすすめ情報