ネームスペース pb


説明

プッシュボタン割込み制御ネームスペース

EZ-KIT BF537のプッシュボタンはPFピンに接続されている。そこで、PFピン割り込みを 使えば、プッシュボタンの押し下げを割込みで検出できる。EZ-KIT Lite BF537では、 プッシュボタンを押すと対応するPFビットが1になる。


列挙型

enum  eSwitch
 プッシュボタン型 [詳細]

関数

void enableInterrupt (eSwitch sw)
 割り込みを有効にする
void disableInterrupt (eSwitch sw)
 割り込みを無効にする
bool interruptRequested (void)
 割り込みが要求されたか調べる
bool pushed (eSwitch sw)
 特定のボタンが押されたかどうかを調べる。
void clearInterrupt (eSwitch sw)
 割り込みをクリアする


列挙型

enum pb::eSwitch

プッシュボタン型

EZ-KIT BF537のプッシュボタンスイッチSW10-SW13を宣言する列挙型。関数への引数は この型を使う。

pb.h29 行で定義されています。

00029                  {
00030         sw10 = 5,     // PF5
00031         sw11 = 4,     // PF4
00032         sw12 = 3,     // PF3
00033         sw13 = 2      // PF2
00034     };


関数

void pb::enableInterrupt ( eSwitch  sw  ) 

割り込みを有効にする

引数として渡されたスイッチを割り込み入力として設定する。立ち上がりエッジで PORTF割り込みAが発生する。SIC_IMASKレジスタの関連するビットも1にする。

pb.cpp19 行で定義されています。

参照元 main().

00020     {
00021         unsigned short bit = (1<<sw);
00022         
00023         *pPORTF_FER &= ~bit;            // FLAGIOとして使用する
00024         *pPORTFIO_DIR &= ~bit;          // 入力に設定
00025         *pPORTFIO_INEN |= bit;          // 入力バッファ接続
00026         *pPORTFIO_EDGE |= bit;          // エッジ割り込みに設定
00027         *pPORTFIO_CLEAR = bit;          // 割込み要求をクリアしておく
00028         *pPORTFIO_MASKA_SET = bit;      // PORTF割込みAに割りあてる
00029         *pSIC_IMASK |= IRQ_PFA_PORTFG;  // SIC_IMASKのPORTF割込みAを許可する
00030     }

void pb::disableInterrupt ( eSwitch  sw  ) 

割り込みを無効にする

引数として渡されたスイッチを割り込みを無効にする。SIC_IMASKは変更しない。

pb.cpp32 行で定義されています。

00033     {
00034         unsigned short bit = (1<<sw);
00035         
00036         *pPORTFIO_MASKA_CLEAR = bit;    // PORTF割込みAへの割り当てを解除する
00037         ssync();
00038     }

bool pb::interruptRequested ( void   ) 

割り込みが要求されたか調べる

PORTF割り込みA要求が発生したかどうかを調べる。発生したのなら真を返す。 PORTF割り込みA要求を出しうるすべてのビットがクリアされるまで真を返す。 特定のボタンが押されたかどうかは確認できない。確認には pushued関数を使う

pb.cpp40 行で定義されています。

参照元 pbIntHandler().

00041     {
00042         return ( *pSIC_ISR & IRQ_PFA_PORTFG );  // PORTF割込みA要求が出ているなら真を返す
00043     }

bool pb::pushed ( eSwitch  sw  ) 

特定のボタンが押されたかどうかを調べる。

引数として渡したボタン・スイッチが押されたならば真を、押されなかったなら 偽を返す。

pb.cpp45 行で定義されています。

参照元 pbIntHandler().

00046     {
00047         unsigned short bit = (1<<sw);
00048         
00049         return( *pPORTFIO & bit );      // このビットから割込み要求が出ているなら真を返す
00050     }

void pb::clearInterrupt ( eSwitch  sw  ) 

割り込みをクリアする

引数として渡したボタン・スイッチからの割り込みをクリアする。

pb.cpp52 行で定義されています。

参照元 pbIntHandler().

00053     {
00054         unsigned short bit = (1<<sw);
00055         
00056         *pPORTFIO_CLEAR = bit;          // このビットからの割り込み要求をクリアする
00057         ssync();                        // パイプライン化書きこみが完了するのを待つ
00058     }


Push Buttonに対してSun Jan 21 21:09:56 2007に生成されました。  doxygen 1.4.7