参考プログラム② 『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の プライバシーポリシー と 利用規約 が適用されます。
1文字以上入力してください
本文は少なくとも1文字以上必要です。
1文字以上入力してください。
下から選んでください: