LCD 課題4 ストップウォッチ

Dependencies:   TextLCD mbed

Committer:
nakano_han
Date:
Thu Oct 06 05:04:09 2016 +0000
Revision:
1:e676f29f471a
Parent:
0:8854ce57371e
LCD??4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nakano_han 0:8854ce57371e 1 #include "mbed.h"
nakano_han 0:8854ce57371e 2 #include "TextLCD.h"
nakano_han 0:8854ce57371e 3
nakano_han 1:e676f29f471a 4 TextLCD lcd(D8,D10,D11,D12,D13,D14); // rs, e, d4, d5, d6, d7) //LCD出力設定
nakano_han 1:e676f29f471a 5 AnalogIn sw1(A4); //SW入力設定
nakano_han 0:8854ce57371e 6
nakano_han 0:8854ce57371e 7 int main()
nakano_han 0:8854ce57371e 8 {
nakano_han 1:e676f29f471a 9 int c = 0; //int型変数定義
nakano_han 1:e676f29f471a 10 int ms = 0; //int型変数定義
nakano_han 1:e676f29f471a 11 int s = 0; //int型変数定義
nakano_han 1:e676f29f471a 12 int m = 0; //int型変数定義
nakano_han 0:8854ce57371e 13
nakano_han 1:e676f29f471a 14 lcd.cls(); //LCD表示初期化
nakano_han 1:e676f29f471a 15 while(1) //無限ループ
nakano_han 1:e676f29f471a 16 {
nakano_han 1:e676f29f471a 17 if(sw1 == 1) //SWが押されたとき{}内実行
nakano_han 0:8854ce57371e 18 {
nakano_han 1:e676f29f471a 19 wait(0.25); //0.25秒待つ
nakano_han 1:e676f29f471a 20 c++; //cに1足す
nakano_han 0:8854ce57371e 21 }
nakano_han 1:e676f29f471a 22 if(c == 1) //cが1の時{}内実行
nakano_han 0:8854ce57371e 23 {
nakano_han 1:e676f29f471a 24 ms++; //ms(1/10秒)に1足す
nakano_han 1:e676f29f471a 25 wait(0.0073); //0.0073秒待つ
nakano_han 1:e676f29f471a 26 if(ms == 99) //msが99になった時{}内実行
nakano_han 0:8854ce57371e 27 {
nakano_han 1:e676f29f471a 28 ms = 0; //msを初期化
nakano_han 1:e676f29f471a 29 s++; //s(秒)に1足す
nakano_han 1:e676f29f471a 30 if(s == 60) //sが60になった時{}内実行
nakano_han 0:8854ce57371e 31 {
nakano_han 1:e676f29f471a 32 s = 0; //sを初期化
nakano_han 1:e676f29f471a 33 m++; //mに1足す
nakano_han 0:8854ce57371e 34 }
nakano_han 0:8854ce57371e 35 }
nakano_han 0:8854ce57371e 36 }
nakano_han 1:e676f29f471a 37 if(c >= 3) //cが3以上になった時{}内実行
nakano_han 0:8854ce57371e 38 {
nakano_han 1:e676f29f471a 39 ms = 0; //ms初期化
nakano_han 1:e676f29f471a 40 s = 0; //s初期化
nakano_han 1:e676f29f471a 41 m = 0; //m初期化
nakano_han 1:e676f29f471a 42 c = 0; //c初期化
nakano_han 0:8854ce57371e 43 }
nakano_han 0:8854ce57371e 44
nakano_han 1:e676f29f471a 45 lcd.locate(0,0); //表示座標
nakano_han 1:e676f29f471a 46 lcd.putc((m/10) % 10 + '0'); //LCDにmに格納された変数の10の位を表示
nakano_han 1:e676f29f471a 47 lcd.putc((m/1) % 10 + '0'); //LCDにmに格納された変数の1の位を表示
nakano_han 1:e676f29f471a 48 lcd.puts(":"); //時刻表示に使われる:コロンを表示
nakano_han 0:8854ce57371e 49
nakano_han 1:e676f29f471a 50 lcd.locate(3,0); //表示座標
nakano_han 1:e676f29f471a 51 lcd.putc((s/10) % 10 + '0'); //LCDにsに格納された変数の10の位を表示
nakano_han 1:e676f29f471a 52 lcd.putc((s/1) % 10 + '0'); //LCDにsに格納された変数の1の位を表示
nakano_han 1:e676f29f471a 53 lcd.puts(":"); //時刻表示に使われる:コロンを表示
nakano_han 0:8854ce57371e 54
nakano_han 1:e676f29f471a 55 lcd.locate(6,0); //表示座標
nakano_han 1:e676f29f471a 56 lcd.putc((ms/10) % 10 + '0'); //LCDにmsに格納された変数の10の位を表示
nakano_han 1:e676f29f471a 57 lcd.putc((ms/1) % 10 + '0'); //LCDにmsに格納された変数の1の位を表示
nakano_han 0:8854ce57371e 58 }
nakano_han 0:8854ce57371e 59 }