/*****************************
STEP08_Function.c
*****************************/
#define _LEGACY_HEADERS
// インクルードファイルの読み込み
#include <pic.h>
// コンフィギュレーションワードの設定
__CONFIG ( UNPROTECT & LVPDIS & BOREN & MCLREN & PWRTEN & WDTDIS & INTIO );
// プロトタイプ宣言
void WaitTime (int cnt);
// メイン関数
void main (void)
{
// 1,2,17,18端子を入出力端子に設定
CMCON = 0x07;
// 電圧レベルの初期設定
PORTA = 0xFF;
PORTB = 0xFF;
// 入出力設定
TRISA = 0x20;
TRISB = 0x00;
// 永久ループ
while(1)
{
// LED1点灯
RB0 = 0;
// 待ち時間関数の呼び出し
WaitTime(10000);
// LED1消灯
RB0 = 1;
// 待ち時間関数の呼び出し
WaitTime(10000);
}
}
// 待ち時間関数
void WaitTime(int cnt)
{
while(cnt > 0)
cnt--;
}
*待ち時間関数を定義すると以下のメリットがあります。
/*****************************
STEP08_StackOver.c
*****************************/
#define _LEGACY_HEADERS
// インクルードファイルの読み込み
#include <pic.h>
// コンフィギュレーションワードの設定
__CONFIG ( UNPROTECT & LVPDIS & BOREN & MCLREN & PWRTEN & WDTDIS & INTIO );
// プロトタイプ宣言
void Func0 (void);
void Func1 (void);
void Func2 (void);
void Func3 (void);
void Func4 (void);
void Func5 (void);
void Func6 (void);
void Func7 (void);
void Func8 (void);
void Func9 (void);
// メイン関数
void main (void)
{
// Func0関数の呼び出し
Func0();
// 永久ループ
while(1)
;
}
// Func0関数
void Func0 (void)
{
// Func1関数の呼び出し
Func1();
}
// Func1関数
void Func1 (void)
{
// Func2関数の呼び出し
Func2();
}
// Func2関数
void Func2 (void)
{
// Func3関数の呼び出し
Func3();
}
// Func3関数
void Func3 (void)
{
// Func4関数の呼び出し
Func4();
}
// Func4関数
void Func4 (void)
{
// Func5関数の呼び出し
Func5();
}
// Func5関数
void Func5 (void)
{
// Func6関数の呼び出し
Func6();
}
// Func6関数
void Func6 (void)
{
// Func7関数の呼び出し
Func7();
}
// Func7関数
void Func7 (void)
{
// Func8関数の呼び出し
Func8();
}
// Func8関数
void Func8 (void)
{
// Func9関数の呼び出し
Func9();
}
// Func9関数
void Func9 (void)
{
;
}
*関数化は大変便利な機能です。