Akizuki 32x16 dot LED Matrix unit (K-03735) control library.

秋月電子の32×16ドットLEDマトリクス表示装置(K-03735)を制御するライブラリです。
バッファの内容をそのままLEDマトリクス装置に送ります。
LEDマトリクス表示装置は最大4台まで接続できるので、接続台数を必ず指定してください。(この台数でバッファのサイズを計算しています。)
行間表示は1msのdelayを入れています。パラメタで変更可能です。
このライブラリの呼び出し元は基本的にwhile()でループしてください。
初めてのライブラリなのでメンバ関数もドキュメントとかまだ最低限です。
おかしなところはぜひコメントをください。

表示例は以下ページをご覧ください。

akiledmatrix.h

Committer:
kanpapa
Date:
2013-02-17
Revision:
1:2705be49d5e2
Parent:
0:bf351a2fa565
Child:
2:ddef08e13c8e
Child:
10:9ce938cdeb33

File content as of revision 1:2705be49d5e2:

#ifndef MBED_AKILEDMATRIX_H
#define MBED_AKILEDMATRIX_H
 
#include "mbed.h"

/** AkiLedMatrix class.
 *  Used for AKIZUKI MATRIX LED unit.
 *
 * Example:
 * @code
 * #include "mbed.h"
 * #include "akiledmatrix.h"
 *
 * // LEDMatrix      mbed
 * // ----------   --------
 * // 1 LED_PWR
 * // 2 SIN_1 ----- p5  line
 * // 3 SIN_2 ----- p6  LED1 row
 * // 4 SIN_3 ----- p7  LED2 row
 * // 5 CLOCK ----- p8
 * // 6 LATCH ----- p9
 * // 7 STROBE ---- p10
 * // 8 IC_PWR
 * // 9 GND
 * // 10 GND
 *
 * AkiLedMatrix ledmatrix(p5, p6, p7, p8, p9, p10, 1);
 * 
 * int main() {
 *    const unsigned char buf[] = {
 *    0xff,0xff,0xff,0xff,  // D15   
 *    0xff,0xff,0xff,0xff,  // D14
 *    0xff,0xff,0xff,0xff,  // D13
 *    0xff,0xe7,0xff,0xfc,  // D12
 *    0xff,0xe7,0xff,0xfc,  // D11
 *    0xff,0xe7,0xff,0xfc,  // D10
 *    0x44,0x60,0xe0,0xe0,  // D9
 *    0x00,0x20,0x40,0x40,  // D8
 *    0x33,0x26,0x4e,0x4c,  // D7
 *    0x33,0x26,0x40,0x4c,  // D6
 *    0x33,0x26,0x4f,0xcc,  // D5
 *    0x33,0x20,0x60,0xc0,  // D4
 *    0x33,0x28,0xf1,0xe4,  // D3
 *    0xff,0xff,0xff,0xff,  // D2
 *    0xff,0xff,0xff,0xff,  // D1
 *    0xff,0xff,0xff,0xff}; // D0
 * 
 *    int delay = 1000; // dynamic time (us)
 *    
 *    while(1){
 *        ledmatrix.display(buf, delay);
 *    }
 * }
 * @endcode
 */
class AkiLedMatrix {
public:
    /** Create AkiLedMatrix instance
     * @param sin1 SIN_1
     * @param sin2 SIN_2
     * @param sin3 SIN_3
     * @param clock CLOCK IN
     * @param latch LATCH IN
     * @param strobe STROBE IN
     * @param maxledunit The number of LED units. 
     */
    AkiLedMatrix(PinName sin1,
                 PinName sin2,
                 PinName sin3,
                 PinName clock,
                 PinName latch,
                 PinName strobe,
                 const unsigned int maxledunit);
                                  
     /** Displays the contents of the buffer
      *
      * @param buffer Display buffer
      * @param delay  Dynamic display delay in microseconds
      * @returns
      *        void
      */
     void display(const unsigned char *buffer, const unsigned int delay = 1000);
 
private:
    DigitalOut _sin1,_sin2,_sin3,_clock,_latch,_strobe;
    unsigned int _maxledunit;
};
 
#endif