pal

/* ヘッダーファイル読み込み */

  1. 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; val:PC.readable初期化用変数 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_us(); 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 short Value){ PC.printf("%d[cm]\r\n",Value); }


Please log in to post comments.