MARMEX_OB基板OLED日本語対応ライブラリ(MARMEX_OB基板OLEDライブラリ継承版)

/media/uploads/diasea/_scaled_mary_oled.jpg

はじめに

nuchoさんが公開されているMARYシステムのOB基板(OLED)日本語対応版プログラムnxpfanさんが公開されているMARMEX_OB基板OLEDライブラリ (MARMEX_OB_oled)を継承する形でコーディングしてみた。

Import libraryMARMEX_OB_oled_J

MARMEX_OB_oled with Japanese font

その際、MARMEX_OB_oled_copy.hの変数のアクセス修飾子を修正している。

MARMEX_OB_oled_copy.h/377行目あたり

protected: //private:
    /** Command list for the OLED controller */
    enum {
        SET_DISPLAY_MODE_ALL_OFF                = 0xA4,
        SET_COMMAND_LOCK                        = 0xFD,

サンプル

nuchoさんのサンプルの場合、私の環境では、文字化けして日本語が表示できなかったため、日本語部分を外部ファイルから取り込むようにした。

Import programMARMEX_OB_oled_J_Helloworld

MARMEX_OB_oled_J sample

動作させるには、binファイルと同じmbedのlocal上に、load.txtという名前のファイルを作る必要がある。 サンプルで表示しているload.txtは以下の通り。

load.txt/エンコード:Shift_JIS

縦倍角:123
横倍角:123
2倍角:123
3倍角:1

また、サンプルコードのピン配置は、MARY OB基板(OLED)をmbedに接続してみましたを元にしている。

SPI Frequency

私の環境だと、mbedライブラリのリビジョン34まで、MARMEX_OB基板OLEDライブラリ (MARMEX_OB_oled)が動作していたが、ライブラリのバージョンを上げると画面表示できなくなった。 MARMEX_OB_oled.hの86行目あたりにある、SPI_FREQUENCYの値を減らすことで動作した。

class MARMEX_OB_oled : public NokiaLCD {

public:

    /** General parameters for MARMEX_OB_oled */
    enum  {
        ROWS          = 15,         /**< # of rows (lines) for displaying characters  */
        COLS          = 16,         /**< # of columns (width) for displaying characters  */
        WIDTH         = 128,        /**< screen width [pixels]  */
        HEIGHT        = 128,        /**< screen height [pixels]  */
//        SPI_FREQUENCY = 20000000    /**< SPI (sclk) SPI_FREQUENCY  */
        SPI_FREQUENCY = 16000000    /**< SPI (sclk) SPI_FREQUENCY  */
    };


Please log in to post comments.