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 |
| void pb::enableInterrupt | ( | eSwitch | sw | ) |
割り込みを有効にする
引数として渡されたスイッチを割り込み入力として設定する。立ち上がりエッジで PORTF割り込みAが発生する。SIC_IMASKレジスタの関連するビットも1にする。
参照元 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 | ) |
| bool pb::interruptRequested | ( | void | ) |
割り込みが要求されたか調べる
PORTF割り込みA要求が発生したかどうかを調べる。発生したのなら真を返す。 PORTF割り込みA要求を出しうるすべてのビットがクリアされるまで真を返す。 特定のボタンが押されたかどうかは確認できない。確認には pushued関数を使う
参照元 pbIntHandler().
| bool pb::pushed | ( | eSwitch | sw | ) |
特定のボタンが押されたかどうかを調べる。
引数として渡したボタン・スイッチが押されたならば真を、押されなかったなら 偽を返す。
参照元 pbIntHandler().
00046 { 00047 unsigned short bit = (1<<sw); 00048 00049 return( *pPORTFIO & bit ); // このビットから割込み要求が出ているなら真を返す 00050 }
| void pb::clearInterrupt | ( | eSwitch | sw | ) |
割り込みをクリアする
引数として渡したボタン・スイッチからの割り込みをクリアする。
参照元 pbIntHandler().
00053 { 00054 unsigned short bit = (1<<sw); 00055 00056 *pPORTFIO_CLEAR = bit; // このビットからの割り込み要求をクリアする 00057 ssync(); // パイプライン化書きこみが完了するのを待つ 00058 }
1.4.7