LcdPatternに関係するクラス(W5H7Pattern,W5H10Pattern)
LcdPatternに関係するクラスをまずは作成しましょう.このクラスは,幅5高さ7および幅5高さ10のサイズの文字パターンを記憶するためのクラスです.SC1602BS-Bはこの2種類のサイズのオリジナルパターンを記憶することができます.それぞれのパターンを記憶するため,W5H7PatternとW5H10Patternクラスがあります.これらのクラスのコンストラクタには文字のパターンを表す配列の先頭アドレスを渡せるようになっており,この配列に入っているデータにもとづきオリジナルパターンを記憶することができます.
以上のように,オリジナルパターンを作成するとき,幅5高さ7もしくは幅5高さ10のサイズか選ぶことができます.ただし条件があり,幅5高さ7のフォントは8種類登録できますが,幅5高さ10のフォントでは4種類しか登録できない仕様となっています.RAMの容量のためです.

  1. LcdPatternクラス

    1. コンストラクタ

      _width,_heightおよび_dataが初期化されており,それ以外に行うことはありません
    2. デストラクタ

      _data配列として確保したメモリを解放するのでdelete _data;となります.
    3. getRowData

      _data配列のrow番目の要素を返せばよいのでreturn _data[row];となります.
    4. setRowData

      _data配列のrow番目に,仮引数であるdataを代入すればよいので_data[row] = data;となります.
  2. W5H7Patternクラス

    1. コンストラクタ

      まず幅を5,高さを7に設定するため,_width=5;_height=7;と書きます.次に_data配列のために_height分だけメモリを確保するため,_data=new unsigned char[_height];となります.最後に,仮引数patternを_dataにコピーするため,for文でheight回繰り返し,_patternから_dataにコピーします.例えば下のようになります.
      for(int y=0; y<_height; y++) {
        _data[y] = pattern[y];
      }
    2. getPatternType

      この関数では,Font型の定数であるW5H7を返せばよいですので,return  W5H7;と書いてください.
  3. W5H10Patternクラス

    1. コンストラクタ

      W5H7Patternクラスを参考にして書いてください.違うところは_height=7が_height=10;となるところだけです.
    2. getPatternType

      return W5H10;と書いてください.