とりあえず前回セミホスティングでprintfの結果をデバッガ画面に出力することが出来ました。
ここまで出来ていると言う事は、以下の事ができたと言う事です。
・プログラムをマイコンに書き込むというフラッシュ書込みが出来た。
・デバッガによりプログラムをコントロールできた。
・標準出力をデバッガとして受信ができた。。。
ということで、これから安心してソフト開発が出来そうな状態と言う事を確認できました。
はじめて使うマイコンではこうした確認が重要と思っていますので、まずはHello Worldプロジェクトで確認しました。
それでは、本日は評価ボード上のLEDを点滅させてみたいと思います。
それでは評価ボードでユーザが使用できるLEDを調べてみると
- LED1 P107
- LED2 P100
ここでは、P107につながっているLEDを操作する事にします。
P107をGPIOしかも出力として使うためにはいくつか設定が必要です。
・P107PFSでポートを出力に設定する
・しかし、P107PFSを設定するためにあ、PWPRのPFSWEビットを1にして設定変更を出来るようにする必要があります。
そのうえで、P107の出力を変化させるためにPODR07の値を変更します。
以下のコードを作ってみました。
__no_init volatile unsigned char PWPR @ 0x40040D03;
__no_init volatile unsigned int P107PFS @ 0x4004085C;
__no_init volatile unsigned short PCR1 @ 0x40040020;
void delay() {
volatile int i;
for (i=0; i<100000;i++);
}
int main(void)
{
PWPR = 0x00;
PWPR = 0xC0;
P107PFS = P107PFS | 0x5;
while (1 ) {
PCR1 = PCR1 & 0xFF7F;
delay();
PCR1 = PCR1 | 0x0080;
delay();
}
return 0;
}
__no_init volatile unsigned int P107PFS @ 0x4004085C;
__no_init volatile unsigned short PCR1 @ 0x40040020;
void delay() {
volatile int i;
for (i=0; i<100000;i++);
}
int main(void)
{
PWPR = 0x00;
PWPR = 0xC0;
P107PFS = P107PFS | 0x5;
while (1 ) {
PCR1 = PCR1 & 0xFF7F;
delay();
PCR1 = PCR1 | 0x0080;
delay();
}
return 0;
}
これでLED点滅することが出来ました。