最初のプログラム(LEDを点滅する)
北斗ボードの基盤上に並んでいるLEDはポート1に繋がっています。このLEDを一定時間毎の点滅するプログラムを作成します。
新規プロジェクトワークスペースの作成を選択し、ワークスペース名に「M12_LED」を記入します。これは、\Workspase内に作られるフォルダ名になります。
#include "sfr_r8m12a.h"
#include "led_ctrl.h"
#define CLOCK 20000
/*メインプログラム*/
void main( void ) {
init(); /*初期化*/
while( 1 ) {
p1 = 0x55;
wait_ms(1000);
p1 = 0xaa;
wait_ms(1000);
}
}
/* R8C/M12A スペシャルファンクションレジスタ(SFR)の初期化*/
void init( void ) {
int i;
/* クロックを高速オンチップオシレータ(20MHz)に変更 */
prc0 = 1; /* プロテクト解除 */
hocoe = 1; /* 高速オンチップオシレータ発信開始 */
for(i=0; i<50; i++ ); /* 安定するまで少し待つ(約10ms) */
hscksel = 1;/* 高速オンチップオシレータのクロックに切換え */
scksel = 1;/* システム基準クロック 低速→高速切換え */
prc0 = 0; /* プロテクト保護 */
/* ポートの入出力設定 */
pd1 = 0xff;/* ポート1の入出力設定 */
}
/* タイマ本体 us単位のwait関数*/
void wait_us(unsigned long usec) {
usec = (usec * CLOCK) / 45000;
while(usec --);{ }
}
/* タイマ本体 ms単位のwait関数*/
void wait_ms(unsigned long msec) {
unsigned int i;
for(i=0;i<msec;i++){
wait_us(1000);
}
}
/* end of file*/
次に、関数のプロトタイプ宣言をまとめたファイルled_ctrl.hを作成します。
Cのソースファイルと同じフォルダに保存しておきます。
/* led_ctrl.h */
/* プロトタイプ宣言 */
void init( void );
void wait_us(unsigned long usec);
void wait_ms(unsigned long msec);
入力が終わったら、メニューのbuildアイコンをクリックしてmotファイルを作成します。

ツール→書き込みでR8Cライタを使ってボードに書き込みを行います。
電源を繋いで走らせると、ボード上のLEDが1秒毎に点滅を繰り返します。
プロジェクトファイルのダウンロード
メニューに戻る