Advanced Robot Control System  5.1-REV.51SF170515
RPi2GPIO.hh
[詳解]
1 // Raspberry Pi 2 GPIOコントローラ
2 // 2016/08/17 Yuki YOKOKURA
3 //
4 // ラズベリーパイ2の汎用入出力の制御を行うクラス
5 //
6 // Copyright (C) 2011-2016 Yuki YOKOKURA
7 // This program is free software;
8 // you can redistribute it and/or modify it under the terms of the GNU General Public License
9 // as published by the Free Software Foundation; either version 3 of the License, or any later version.
10 // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11 // without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 // See the GNU General Public License for more details <http://www.gnu.org/licenses/>.
13 // Besides, you can negotiate about other options of licenses instead of GPL.
14 // If you would like to get other licenses, please contact us<yokokura@vos.nagaokaut.ac.jp>.
15 
16 #ifndef RPI2GPIO
17 #define RPI2GPIO
18 
19 namespace ARCS { // ARCS名前空間
20  class RPi2GPIO {
21  public:
22  RPi2GPIO(); // コンストラクタ
23  ~RPi2GPIO(); // デストラクタ
24  enum IOmode { // 入出力モード設定用
25  IN,
27  };
28  void SetConfig(int port, IOmode mode); // 入出力を設定する関数 port : GPIO番号,mode : RPi2GPIO::IN or RPi2GPIO::OUT
29  void SetConfig_GPIO9to0(uint32_t bitdata); // GPIO9~0の設定レジスタを一括設定する関数
30  void SetConfig_GPIO19to10(uint32_t bitdata);// GPIO19~10の設定レジスタを一括設定する関数
31  void SetConfig_GPIO29to20(uint32_t bitdata);// GPIO29~20の設定レジスタを一括設定する関数
32  void SetConfig_GPIO39to30(uint32_t bitdata);// GPIO39~30の設定レジスタを一括設定する関数
33  void SetConfig_GPIO49to40(uint32_t bitdata);// GPIO49~40の設定レジスタを一括設定する関数
34  void SetConfig_GPIO53to50(uint32_t bitdata);// GPIO53~50の設定レジスタを一括設定する関数
35  void SetConfig_AllOutput(void); // すべてのGPIOピンを出力モードに設定する関数
36  void SetBitDataLo(uint32_t bitdata); // GPIO31~0 からビットデータを一括出力する関数
37  void SetBitDataHi(uint32_t bitdata); // GPIO39~32 からビットデータを一括出力する関数
38  void BitSet(unsigned int port); // 指定したGPIOを 1 にする関数
39  void BitClear(unsigned int port); // 指定したGPIOを 0 にする関数
40  uint32_t GetBitDataLo(void) const; // GPIO31~0 からデータを一括入力する関数
41  uint32_t GetBitDataHi(void) const; // GPIO53~32 からデータを一括入力する関数
42  bool BitGet(unsigned int port) const; // 指定したGPIOからビットの状態を取得する関数
43  void SetACTLED(bool onoff); // ACT LED の点灯を制御する関数 onoff=trueでオン、onff=falseでオフ
44  void SetPWRLED(bool onoff); // PWR LED の点灯を制御する関数 onoff=trueでオン、onff=falseでオフ
45 
46  private:
47  RPi2GPIO(const RPi2GPIO&); // コピーコンストラクタ使用禁止
48  const RPi2GPIO& operator=(const RPi2GPIO&); // 代入演算子使用禁止
49 
50  static const int IOREG_SIZE = 4096; // [bytes] I/Oレジスタのマッピングサイズ
51  static const unsigned long IOREG_ADDRESS = 0x3F200000; // I/Oレジスタのベースアドレス
52 
53  int fd; // /dev/memファイルディスクリプタ
54  uint32_t* IOptr;// I/Oレジスタのアドレス
55  };
56 }
57 
58 #endif
59 
IOmode
Definition: RPi2GPIO.hh:24
~RPi2GPIO()
Definition: RPi2GPIO.cc:63
void SetConfig_GPIO49to40(uint32_t bitdata)
Definition: RPi2GPIO.cc:100
void SetACTLED(bool onoff)
Definition: RPi2GPIO.cc:170
void SetConfig(int port, IOmode mode)
Definition: RPi2GPIO.cc:69
uint32_t * IOptr
Definition: RPi2GPIO.hh:54
void BitClear(unsigned int port)
Definition: RPi2GPIO.cc:141
Definition: RPi2GPIO.hh:20
RPi2GPIO()
Definition: RPi2GPIO.cc:51
void SetConfig_AllOutput(void)
Definition: RPi2GPIO.cc:110
uint32_t GetBitDataLo(void) const
Definition: RPi2GPIO.cc:150
Definition: RPi2GPIO.hh:26
void SetConfig_GPIO9to0(uint32_t bitdata)
Definition: RPi2GPIO.cc:80
void BitSet(unsigned int port)
Definition: RPi2GPIO.cc:132
void SetBitDataLo(uint32_t bitdata)
Definition: RPi2GPIO.cc:120
static const int IOREG_SIZE
Definition: RPi2GPIO.hh:50
bool BitGet(unsigned int port) const
Definition: RPi2GPIO.cc:160
uint32_t GetBitDataHi(void) const
Definition: RPi2GPIO.cc:155
void SetConfig_GPIO19to10(uint32_t bitdata)
Definition: RPi2GPIO.cc:85
Definition: ControlFunctions.hh:17
void SetBitDataHi(uint32_t bitdata)
Definition: RPi2GPIO.cc:126
void SetPWRLED(bool onoff)
Definition: RPi2GPIO.cc:179
void SetConfig_GPIO29to20(uint32_t bitdata)
Definition: RPi2GPIO.cc:90
Definition: RPi2GPIO.hh:25
int fd
Definition: RPi2GPIO.hh:53
void SetConfig_GPIO39to30(uint32_t bitdata)
Definition: RPi2GPIO.cc:95
void SetConfig_GPIO53to50(uint32_t bitdata)
Definition: RPi2GPIO.cc:105
const RPi2GPIO & operator=(const RPi2GPIO &)
static const unsigned long IOREG_ADDRESS
Definition: RPi2GPIO.hh:51