pb.cpp

説明を見る。
00001 /** \file pb.cpp
00002  *  \brief プッシュ・ボタン操作関数群
00003  *  \author アナログ・デバイセズ株式会社
00004  *  \version 1.0
00005  *  \date    2007.Jan.18
00006  *
00007  * EZ-KIT BF537のプッシュボタンを使い、割り込みを起こす場合に使用する関数群。
00008  */
00009 //--------------------------------------------------------------------------//
00010 // Header files                                                             //
00011 //--------------------------------------------------------------------------//
00012 #include "pb.h"
00013 #include <signal.h>
00014 #include <cdefBF53x.h>
00015 #include <shortfract>
00016 #include <ccblkfn.h>
00017 
00018 namespace pb{
00019     void enableInterrupt( eSwitch sw )
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     }
00031     
00032     void disableInterrupt( eSwitch sw )
00033     {
00034         unsigned short bit = (1<<sw);
00035         
00036         *pPORTFIO_MASKA_CLEAR = bit;    // PORTF割込みAへの割り当てを解除する
00037         ssync();
00038     }
00039     
00040     bool interruptRequested( void )
00041     {
00042         return ( *pSIC_ISR & IRQ_PFA_PORTFG );  // PORTF割込みA要求が出ているなら真を返す
00043     }
00044     
00045     bool pushed( eSwitch sw )
00046     {
00047         unsigned short bit = (1<<sw);
00048         
00049         return( *pPORTFIO & bit );      // このビットから割込み要求が出ているなら真を返す
00050     }
00051     
00052     void clearInterrupt( eSwitch sw )
00053     {
00054         unsigned short bit = (1<<sw);
00055         
00056         *pPORTFIO_CLEAR = bit;          // このビットからの割り込み要求をクリアする
00057         ssync();                        // パイプライン化書きこみが完了するのを待つ
00058     }
00059 };

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