00001 /** \file pb.h 00002 * \brief プッシュボタン操作関数群宣言ファイル 00003 * \author アナログ・デバイセズ株式会社 00004 * \version 1.0 00005 * 00006 */ 00007 #pragma once 00008 00009 //--------------------------------------------------------------------------// 00010 // Header files // 00011 //--------------------------------------------------------------------------// 00012 #include <signal.h> 00013 #include <cdefBF537.h> 00014 #include <shortfract> 00015 /** プッシュボタン割込み制御ネームスペース 00016 * 00017 * EZ-KIT BF537のプッシュボタンはPFピンに接続されている。そこで、PFピン割り込みを 00018 * 使えば、プッシュボタンの押し下げを割込みで検出できる。EZ-KIT Lite BF537では、 00019 * プッシュボタンを押すと対応するPFビットが1になる。 00020 */ 00021 00022 namespace pb{ 00023 00024 /** プッシュボタン型 00025 * 00026 * EZ-KIT BF537のプッシュボタンスイッチSW10-SW13を宣言する列挙型。関数への引数は 00027 * この型を使う。 00028 */ 00029 enum eSwitch { 00030 sw10 = 5, // PF5 00031 sw11 = 4, // PF4 00032 sw12 = 3, // PF3 00033 sw13 = 2 // PF2 00034 }; 00035 00036 /** 割り込みを有効にする 00037 * 00038 * 引数として渡されたスイッチを割り込み入力として設定する。立ち上がりエッジで 00039 * PORTF割り込みAが発生する。SIC_IMASKレジスタの関連するビットも1にする。 00040 */ 00041 00042 void enableInterrupt( eSwitch sw ); 00043 00044 /** 割り込みを無効にする 00045 * 00046 * 引数として渡されたスイッチを割り込みを無効にする。SIC_IMASKは変更しない。 00047 */ 00048 void disableInterrupt( eSwitch sw ); 00049 00050 /** 割り込みが要求されたか調べる 00051 * 00052 * PORTF割り込みA要求が発生したかどうかを調べる。発生したのなら真を返す。 00053 * PORTF割り込みA要求を出しうるすべてのビットがクリアされるまで真を返す。 00054 * 特定のボタンが押されたかどうかは確認できない。確認には pushued関数を使う 00055 */ 00056 bool interruptRequested( void ); 00057 00058 /** 特定のボタンが押されたかどうかを調べる。 00059 * 00060 * 引数として渡したボタン・スイッチが押されたならば真を、押されなかったなら 00061 * 偽を返す。 00062 */ 00063 bool pushed( eSwitch sw ); 00064 00065 /** 割り込みをクリアする 00066 * 00067 * 引数として渡したボタン・スイッチからの割り込みをクリアする。 00068 */ 00069 void clearInterrupt( eSwitch sw ); 00070 }; 00071
1.4.7