以前アドバイスいただいたことを試してみようと、下記のような
実験回路を組みました。
while(1){
PORTA=~PORTA
WaitTime(20000);
}
初期設定はありますが、このプログラムを走らせました。
すると、最初は、思った動作をしますが、
途中で、止まってしまいます。プログラム的には、間違いは
ありません。
PICの足に触ると、動き出したり、止まったり、動作が安定し
ません。
通常は、○ドウインの基板を使ってテストしてますが、
この基板で動いて、ブレッドボードで実行すると、回路は、
間違ってないのに動かないという事象に遭遇しました。
違いを考えると、○ドウインの回路は、リセットの回路が組まれ
ていますが、ブレッドボードでは、組まれていません。
NETで検索するとありました。MCLRと呼ばれるリセットに使わ
れる端子を有効にしておくと、リセットの回路がない状態で
は、不安定になるとありました。
そこで、前述のプログラムのconfigの設定を、
MCLREN→MCLRDIS
にして、再度コンパイル、それで、動かしてみました。
あっけなく動きました。
アドバイスいただいた通りの動作でした。
LEDの極性を反対にして、ポートにつなぐのが味噌です。
プログラムでは、時間をおいて、HIGHとLOWを繰り返して
るだけです。
こうすることで、PICがHIGHになると吸い出し?でLEDが
点灯し、LOWになると吸い込みでLEDがつきます。
私には、目から鱗でした。
PICのポートが少ない時は、応用ができ
そうです。