20160813 超音波センサー サンプル

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
takahashikento
Date:
Sat Aug 13 09:33:07 2016 +0000
Commit message:
0813 ???????????

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r c7074b60eeab main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Aug 13 09:33:07 2016 +0000
@@ -0,0 +1,92 @@
+/* ヘッダーファイル読み込み */
+#include "mbed.h"
+ 
+/* ピンの機能設定  */
+Serial PC (USBTX,USBRX);            //USB :シリアル通信
+DigitalOut USSTriger (p11);         //P11 :超音波センサ トリガ出力
+Timer ActiveTime;
+ 
+/* 割り込み処理宣言 */
+Ticker TrigerTiming;                //Trigerピン :インターバルタイマ
+InterruptIn USSEcho (p12);          //p12 :超音波センサ  エコー入力
+  
+/* 関数宣言 */
+void init(void);
+void Output_Monitor(unsigned short Value);
+ 
+ 
+/* グローバル変数宣言*/
+unsigned short USSDistance;         //USSDistance:超音波センサ測定距離
+ 
+/* main関数開始*/
+int main() {
+    char val;
+    init();
+    while(1) {
+        if( PC.readable() ){
+            Output_Monitor( USSDistance );
+            val = PC.getc();
+        }
+    }  
+}
+ 
+/***************************************************
+ * @brief       60ms毎の割り込みでUSSTrigerに10usのON出力
+ * @param       なし
+ * @return      なし
+ * @date 2014/12/16 新規作成
+ **************************************************/
+void Triger (){
+    USSTriger = 1;
+    wait_us(10);
+    USSTriger = 0;
+}
+ 
+/***************************************************
+ * @brief       USSEcho立ち上がりでの割り込み
+ * @brief       Hiの場合ActiveTimeタイマスタート
+ * @param       なし
+ * @return      なし
+ * @date 2014/12/16 新規作成
+ **************************************************/
+void RiseEcho(){
+    ActiveTime.start();
+}
+
+ 
+/***************************************************
+ * @brief       USSEcho立ち下がりでの割り込み
+ * @brief       Lowの場合ActiveTimeタイマ停止+値読み取り
+ * @param       なし
+ * @return      なし
+ * @date 2014/12/16 新規作成
+ **************************************************/
+void FallEcho(){
+    unsigned long ActiveWidth;
+    ActiveTime.stop();
+    ActiveWidth = ActiveTime.read();
+    USSDistance = ActiveWidth * 0.0170;
+    ActiveTime.reset();
+}
+ 
+/***************************************************
+ * @brief       各種機能のプロパティ設定
+ * @param       なし
+ * @return      なし
+ * @date 2014/12/13 新規作成
+ **************************************************/
+void init(void){   
+    TrigerTiming.attach( Triger , 0.060 );      //USSTriger周期 60ms
+    USSEcho.rise( RiseEcho );                   //USSEcho立ち上がり時割り込み
+    USSEcho.fall( FallEcho );                   //USSEcho立ち下がり時割り込み
+}
+ 
+/***************************************************
+ * @brief       Parameterの値をPC画面に出力
+ * @param       Value : 画面に出力する値
+ * @return      なし
+ * @date 2014/12/14 新規作成
+ **************************************************/
+void Output_Monitor(unsigned long Value){
+    PC.printf("%d[cm]\r\n",Value);
+}
diff -r 000000000000 -r c7074b60eeab mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sat Aug 13 09:33:07 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/6c34061e7c34
\ No newline at end of file