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を超えるとまた小さくなって・・・とノコギリ波のような感じに上下している感じ。
こういう時にオシロスコープがあるとわかりやすいんだろうなー。
次へ続く・・・