練習プログラム2

 参考プログラム② 『LED全点滅』

#include <3694.h>

/* ウェイト関数 */
void wait(long loop){
       while(loop--);                               //loopの数だけループの処理を繰り返す.
}

int main(void){
       IO.PCR5 = 0xff;                             //Port5をすべて出力に設定.

       while(1){
               IO.PDR5.BYTE = 0x00;             //Port5すべての端子状態を【Low】に設定.
               wait(20000);
               IO.PDR5.BYTE = 0xff;              //Port5すべての端子状態を【High】に設定.
               wait(20000);
       }

       return 0;
}

  ・プログラムの解説

このプログラムでは、時間を潰すために、無駄に処理を繰り返す簡易のウェイト関数を使っています.

void wait(long loop){
       while(loop--);
}

この関数では、loopの値だけループ処理を繰り返すことによって時間を稼いでいます.
この関数で待つ時間はマイコンの処理速度にも依存し、正確に一定の時間を待つのには向いておらず、
ちょっと間をあけるときなどに使われます.

 

メイン関数のほうではまず参考プログラム①と同様に、Port8の端子をすべて出力に設定し、
端子状態を【Low】に設定してLEDをすべて点灯させたあと、先ほどのウェイト関数を使って

wait(20000);

とおくことによって、2万回のループ処理の間待ちます.
次に、端子状態を【High】に設定してLEDを消灯させたあと、またウェイト関数で少し時間をおきます.
この処理をループでさせると、loopに指定した値に対応した間隔でLEDが点滅します.

 

課題プログラム②『LEDを右から順に一個ずつ間隔をおいて点滅させよ』

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年05月19日 16:16
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。