Keiju Nakano
/
mbed1114_shakehands_host_DirectRegisterPWM
うごく
Diff: main.cpp
- Revision:
- 1:f50a49407c60
- Parent:
- 0:9a0a89ffaa43
- Child:
- 2:ad8fad576e79
--- a/main.cpp Fri May 08 15:44:13 2015 +0000 +++ b/main.cpp Sat May 09 08:07:38 2015 +0000 @@ -21,6 +21,8 @@ DigitalOut myled(LED1); +//タイムアウトタイマー初期化 +Timer timeOutTimer; //シリアル初期化 Serial sensSerial (dp16, dp15); @@ -157,6 +159,8 @@ //受信関数 //受信完了時0~4095 +//タイムアウト検出用のタイマーをグローバルで初期化する必要あり +//Timer timeOutTimer; int stringReceive() { //各種定数 @@ -173,10 +177,33 @@ char receiveChar = '\0'; //受信データ格納バッファ文字列 static char receiveDataString [dataLength] = {'\0'};//7個 + //データ送信要求フラグ + static bool Cflag = true; + //関数内セットアップルーチン実行staticフラグ + //はじめてこの関数が呼ばれたときだけ実行される + static bool setup = false; + if(!setup){ + timeOutTimer.start(); + setup = true; + } + //タイムアウトによるデータ送信要求フラグセット + if(timeOutTimer.read() >= 1){ + Cflag = true; + } //データ送信要求 - sensSerial.putc('C'); + //sensSerial.putc('C'); + if(Cflag){ + sensSerial.putc('C'); + Cflag = false; + //タイマリセット + timeOutTimer.stop(); + timeOutTimer.reset(); + timeOutTimer.start(); + } + + //ハードウェアバッファに到着した情報があるか //空ならリターン、あるなら受信値格納用変数にうつす if(!sensSerial.readable()) { @@ -270,6 +297,8 @@ trimString[sizeof(trimString) - 1] = '\0'; /* NULL 終端する */ //文字列→数値 intVal = atoi(trimString); + //送信要求フラグセット + Cflag = true; //数値リターン return intVal;