電子ペーパーで所在を表示しておくプレートのプログラムです

Dependencies:   SDFileSystem mbed

main.cpp

Committer:
kohacraft
Date:
2017-05-23
Revision:
2:3ca92c70070c
Parent:
1:bd1c3875fb64

File content as of revision 2:3ca92c70070c:

/* 電子ペーパー実験セットの実験プログラムです */

#include "mbed.h"
#include "eink.h"

//SDにアクセスするための設定
#include "SDFileSystem.h"
#define     SD_MOSI     dp2
#define     SD_MISO     dp1
#define     SD_SCLK     dp6
#define     SD_CS       dp4
SDFileSystem  sd(SD_MOSI, SD_MISO, SD_SCLK, SD_CS,  "sd");  //  mosi, miso, sclk, cs, name  (HW modification candidate)


DigitalIn key1(dp28);  //キー入力1
DigitalIn key2(dp25);  //キー入力2
DigitalIn key3(dp18);  //キー入力3
DigitalIn key4(dp15);  //キー入力4

int main() {
    
    initPort();   //IOの初期化

    //電子ペーパーの電源を入れる
    powerOn();
    
    FILE *fp;
    char filePath[32] = "";
    int fileNum = 0;
    

    //キーが押されるまでループし続ける
    while( fileNum == 0 )
    {
        if( key1 == 1 )
            fileNum = 1;
        if( key2 == 1 )
            fileNum = 2;
        if( key3 == 1 )
            fileNum = 3;
        if( key4 == 1 )
            fileNum = 4;
    }
    
    //ファイルのオープン
    sprintf( filePath , "/sd/%d.bmp" , fileNum);        
    fp = fopen(filePath, "r");

    /* -------------------------------------- */
    /* 描画モードはお手元の電子ペーパーに合わせて */
    /* 以下の3つのモードから、                  */
    /* 一番きれいに描画されるモードを1つお選び、  */
    /* 他のモードをコメントアウトしてください     */ 
    /* -------------------------------------- */

    //描画モード1 黒でクリアし、白の部分を描画する
    //電子ペーパー ED060SC4(LF)H2向け
    clrDisp(EDP_BLACK); //黒でクリアする
    clrDisp(EDP_BLACK); //何度かクリアするときれいに消えます
    dispBmp( fp , EDP_WHITE );    //ファイルポインタで指定したbmpファイルを表示する
    dispBmp( fp , EDP_WHITE );    //複数回描くと白がきれいになる

    //描画モード2 白でクリアし、黒の部分を描画する
    //電子ペーパー ED060SC4(LF)H2-00向け
    //            ED060SC4(LF)H1向け
    clrDisp(EDP_WHITE); //白でクリアする
    clrDisp(EDP_WHITE);
    dispBmp( fp , EDP_BLACK );
    dispBmp( fp , EDP_BLACK );

    //描画モード3 白でクリアし、白黒両方を描画する
    //電子ペーパー ED060SC4(LF)向け
    clrDisp(EDP_WHITE); //白でクリアする
    clrDisp(EDP_WHITE);
    dispBmp( fp , EDP_BLACK_WHITE );
    dispBmp( fp , EDP_BLACK_WHITE );

    //ファイルのクローズ
    fclose( fp );
    free(fp);
    
    //電子ペーパーの電源を切る
    powerOff();

    //電源OFF待ち
    while(1)
    {
        wait(1);
    }
}