FatFsのサンプル・プロジェクト(Jan 15, 2014)のlpc176xにマクロ定義の重複

※RTCのマクロに"RTC_"プレフィックスをつけることで修正されたようです。(20150422確認)

FatFsのサンプル・プロジェクト(Jan 15, 2014)のlpc176xにマクロ定義の重複があったのでまとめておく。

以下はLPC176x.h、LPC178x.hで共通。

/* RTC */
~
#define CCR (*(volatile uint32_t*)0x40024008)
~
/* Cortex-M3 SCB */
~
#define CCR (*(volatile uint32_t*)0xE000ED14)

実際のサンプルでは時間設定時にCCRでRTCの停止・タイムスタンプのリセット・再起動を実行しているようだが、幸か不幸かCCRの値に関わらず時間設定はできてしまっているようである。

(以下、rtc176x.cから)

int rtc_settime (const RTC *rtc)
{
	CCR = 0x12;		/* Stop RTC */

	/* Update RTC registers */
	SEC = rtc->sec;
	MIN = rtc->min;
	HOUR = rtc->hour;
	DOW = rtc->wday;
	DOM = rtc->mday;
	MONTH = rtc->month;
	YEAR = rtc->year;

	RTC_AUX = _BV(4);	/* Clear power fail flag */
	CCR = 0x11;			/* Restart RTC, Disable calibration feature */

	if (RTC_AUX & _BV(4)) {
		return 0;
	}

	return 1;
}

Cortex-M3 SCBのマクロ名は他のプロジェクトでも共通なようなので、RTC側を変更すべきだろうか。
ちなみにIDE(LPCXpresso)にプロジェクトをインポートしたときの警告で判明したため、改造時に何時間もはまるということは避けられた。

web拍手
This entry was posted in LPC17XX, メモ. Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>