練習プログラム6

「練習プログラム6」の編集履歴(バックアップ)一覧に戻る

練習プログラム6 - (2008/04/29 (火) 00:45:30) のソース

今回はLEDが徐々に点灯する関数です。

これは人間と機械のギャップが少しわかるプログラムだと、
個人的には思ったりします。

***参考プログラム⑥LEDが徐々に点灯する関数

 #include <3694.h>    // H8 Tinyの内部I/O定義をする(ヘッダーファイルの取り込み)
 /*===================================================*/
 /*               サブ関数                       */
 /*===================================================*/
 /*------ ウェイト関数(無駄ループバージョン)---- */
 void wait(long loop){    //無駄ループさせて時間をかせぐ関数
     while(loop--);
 }
 
 /*---------LEDが徐々に点灯する関数--------------*/
 void LED_slow(){
     int i;
     for(i=1;i<1400;i++){
         IO.PDR8.BYTE=0x00;
         wait(100+i);
         IO.PDR8.BYTE=0xff;
         wait(1500-i);
     }
 }
 /*===================================================*/
 /*               メイン関数                     */
 /*===================================================*/
 int main(void){               //メイン関数(名前の通り、ココの中身通りにプログラムが動く。)
     IO.PCR8 = 0xff;           //ポート8を全て出力に設定(IOの設定 0なら入力 1なら出力)
     while(1){                 //無限ループ.
         LED_slow();
         wait(20000);
     }
     return 0;                 
 }

***余談

この課題のみそは「LEDが徐々に点灯する関数」
におけるwaitだと思われます。

LEDはIO.PDR8.BYTE=~~~によって点灯しますが、
waitを入れるとその間は、LEDは点滅しません。

でもwaitをいれている時間というのは、
人間にとってはとてもとても短いものなので、
LEDが「消えている」とはっきり認識することはできません。
そして、人間は「すこし暗く点灯している」と感じます。
ツールボックス

下から選んでください:

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