dsPICがちゃんと動作しているか確認するために以下のようなLEDを点滅させるプログラムを書いた。
#include "p30f4012.h" //// コンフィギュレーションの設定 _FOSC(CSW_FSCM_OFF & XT_PLL8); // 10MHzx8=80MHz _FWDT(WDT_OFF); _FBORPOR(PBOR_ON & BORV_20 & PWRT_64 & MCLR_EN); _FGS(CODE_PROT_OFF); /// ハードウェアポート設定 #define Green1 LATEbits.LATE0 #define Green2 LATEbits.LATE1 #define Yellow1 LATEbits.LATE2 #define Yellow2 LATEbits.LATE3 int main(void) { long wait; LATE = 0xFF; TRISE = 0; while (1) { Green1 = 0; for (wait = 0; wait < 300000; wait++) {} Green1 = 1; for (wait = 0; wait < 300000; wait++) {} } return 0; }
PICKit 2でデバッグするけどLED(Green1)が点滅しない・・・
テスターで通電チェックをすると、案の定、つながってない・・・お恥ずかしい限りですが、ここは正直に書いておきます。
直す前にGreen2, Yellow1, Yellow2を試すと、これら3つは点滅した。
で、PICKit 2をはずして5VのACアダプターに切り替えると・・・動かない。
「やっぱり、ちゃんと動いてなかったんだ・・・」
まずは動かない時に一番に疑うのはMCLR端子。
今までもMCLR端子で動かなかったことがあったので。
確か、MCLR端子は普段+5Vで、リセットのスイッチを押した時に0Vになるはず。
テスターで電圧を測ると非常に小さな電圧から徐々に大きくなって1Vを超えるとまた小さくなって・・・とノコギリ波のような感じに上下している感じ。
こういう時にオシロスコープがあるとわかりやすいんだろうなー。
次へ続く・・・