SPC music playback tools for real snes apu

Dependencies:   mbed

Committer:
akkera102
Date:
Mon Jan 09 13:54:39 2017 +0000
Revision:
0:5bd52e196edb
Child:
2:62e6e22f8be2
first

Who changed what in which revision?

UserRevisionLine numberNew contents of line
akkera102 0:5bd52e196edb 1 /**
akkera102 0:5bd52e196edb 2 * @file gpio.h
akkera102 0:5bd52e196edb 3 * @brief GPIO クラスの宣言およびインターフェイスの定義をします
akkera102 0:5bd52e196edb 4 */
akkera102 0:5bd52e196edb 5
akkera102 0:5bd52e196edb 6 #pragma once
akkera102 0:5bd52e196edb 7
akkera102 0:5bd52e196edb 8 /**
akkera102 0:5bd52e196edb 9 * @brief GPIO クラス
akkera102 0:5bd52e196edb 10 */
akkera102 0:5bd52e196edb 11 class CGpio
akkera102 0:5bd52e196edb 12 {
akkera102 0:5bd52e196edb 13 public:
akkera102 0:5bd52e196edb 14 static CGpio* GetInstance();
akkera102 0:5bd52e196edb 15
akkera102 0:5bd52e196edb 16 static void Initialize();
akkera102 0:5bd52e196edb 17 static void PinDir(int pin, bool write);
akkera102 0:5bd52e196edb 18 static void SetPin(int pin, bool high);
akkera102 0:5bd52e196edb 19 static bool GetPin(int pin);
akkera102 0:5bd52e196edb 20
akkera102 0:5bd52e196edb 21 void WriteByte(unsigned char c);
akkera102 0:5bd52e196edb 22 unsigned char ReadByte();
akkera102 0:5bd52e196edb 23
akkera102 0:5bd52e196edb 24 private:
akkera102 0:5bd52e196edb 25 /**
akkera102 0:5bd52e196edb 26 * モード
akkera102 0:5bd52e196edb 27 */
akkera102 0:5bd52e196edb 28 enum ByteDir
akkera102 0:5bd52e196edb 29 {
akkera102 0:5bd52e196edb 30 kUninitialize = -1, /*!< 未初期化 */
akkera102 0:5bd52e196edb 31 kRead = 0, /*!< リード */
akkera102 0:5bd52e196edb 32 kWrite = 1 /*!< ライト */
akkera102 0:5bd52e196edb 33 };
akkera102 0:5bd52e196edb 34
akkera102 0:5bd52e196edb 35 static CGpio sm_instance; /*!< 唯一のインスタンスです */
akkera102 0:5bd52e196edb 36 ByteDir m_dir; /*!< バイト方向 */
akkera102 0:5bd52e196edb 37
akkera102 0:5bd52e196edb 38 CGpio();
akkera102 0:5bd52e196edb 39 void ByteMode(ByteDir dir);
akkera102 0:5bd52e196edb 40 static unsigned char SwapBits(unsigned char c);
akkera102 0:5bd52e196edb 41 };
akkera102 0:5bd52e196edb 42
akkera102 0:5bd52e196edb 43 /**
akkera102 0:5bd52e196edb 44 * インスタンスの取得
akkera102 0:5bd52e196edb 45 * @return インスタンス
akkera102 0:5bd52e196edb 46 */
akkera102 0:5bd52e196edb 47 inline CGpio* CGpio::GetInstance()
akkera102 0:5bd52e196edb 48 {
akkera102 0:5bd52e196edb 49 return &sm_instance;
akkera102 0:5bd52e196edb 50 }