「練習プログラム2」の編集履歴(バックアップ)一覧はこちら
「練習プログラム2」(2011/05/19 (木) 16:16:23) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<p><strong> 参考プログラム② 『LED全点滅』</strong></p>
<pre>
#include <3694.h>
/* ウェイト関数 */
void wait(long loop){
while(loop--); //loopの数だけループの処理を繰り返す.
}
int main(void){
IO.PCR8 = 0xff; //Port8をすべて出力に設定.
while(1){
IO.PDR8.BYTE = 0x00; //Port8すべての端子状態を【Low】に設定.
wait(20000);
IO.PDR8.BYTE = 0xff; //Port8すべての端子状態を【High】に設定.
wait(20000);
}
return 0;
}
</pre>
<p><strong> ・プログラムの解説</strong></p>
<p>このプログラムでは、時間を潰すために、無駄に処理を繰り返す簡易のウェイト関数を使っています.</p>
<pre>
void wait(long loop){
while(loop--);
}
</pre>
<p>この関数では、loopの値だけループ処理を繰り返すことによって時間を稼いでいます.<br />
この関数で待つ時間はマイコンの処理速度にも依存し、正確に一定の時間を待つのには向いておらず、<br />
ちょっと間をあけるときなどに使われます.</p>
<br /><p>メイン関数のほうではまず参考プログラム①と同様に、Port8の端子をすべて出力に設定し、<br />
端子状態を【Low】に設定してLEDをすべて点灯させたあと、先ほどのウェイト関数を使って</p>
<pre>
wait(20000);
</pre>
<p>とおくことによって、2万回のループ処理の間待ちます.<br />
次に、端子状態を【High】に設定してLEDを消灯させたあと、またウェイト関数で少し時間をおきます.<br />
この処理をループでさせると、loopに指定した値に対応した間隔でLEDが点滅します.</p>
<br /><br /><p>課題プログラム②『LEDを右から順に一個ずつ間隔をおいて点滅させよ』</p>
<p><strong> 参考プログラム② 『LED全点滅』</strong></p>
<pre>
#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;
}
</pre>
<p><strong> ・プログラムの解説</strong></p>
<p>このプログラムでは、時間を潰すために、無駄に処理を繰り返す簡易のウェイト関数を使っています.</p>
<pre>
void wait(long loop){
while(loop--);
}
</pre>
<p>この関数では、loopの値だけループ処理を繰り返すことによって時間を稼いでいます.<br />
この関数で待つ時間はマイコンの処理速度にも依存し、正確に一定の時間を待つのには向いておらず、<br />
ちょっと間をあけるときなどに使われます.</p>
<p> </p>
<p>メイン関数のほうではまず参考プログラム①と同様に、Port8の端子をすべて出力に設定し、<br />
端子状態を【Low】に設定してLEDをすべて点灯させたあと、先ほどのウェイト関数を使って</p>
<pre>
wait(20000);
</pre>
<p>とおくことによって、2万回のループ処理の間待ちます.<br />
次に、端子状態を【High】に設定してLEDを消灯させたあと、またウェイト関数で少し時間をおきます.<br />
この処理をループでさせると、loopに指定した値に対応した間隔でLEDが点滅します.</p>
<p> </p>
<p>課題プログラム②『LEDを右から順に一個ずつ間隔をおいて点滅させよ』</p>