dsPICを使ったオシロスコープの作成(デバッグ編その3)

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

次へ続く・・・

カテゴリー: PIC, 作業 タグ: , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA