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

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

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

Committer:
kanpapa
Date:
Sun Jun 09 12:23:33 2013 +0000
Revision:
7:2daedb892e15
Parent:
5:c055674c4a0b
Child:
8:6afa319e06e8
bugfix: font8 to ledbuf routine.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kanpapa 0:bf351a2fa565 1 #ifndef MBED_AKILEDMATRIX_H
kanpapa 0:bf351a2fa565 2 #define MBED_AKILEDMATRIX_H
kanpapa 0:bf351a2fa565 3
kanpapa 0:bf351a2fa565 4 #include "mbed.h"
kanpapa 0:bf351a2fa565 5
kanpapa 0:bf351a2fa565 6 /** AkiLedMatrix class.
kanpapa 0:bf351a2fa565 7 * Used for AKIZUKI MATRIX LED unit.
kanpapa 0:bf351a2fa565 8 *
kanpapa 0:bf351a2fa565 9 * Example:
kanpapa 0:bf351a2fa565 10 * @code
kanpapa 0:bf351a2fa565 11 * #include "mbed.h"
kanpapa 0:bf351a2fa565 12 * #include "akiledmatrix.h"
kanpapa 0:bf351a2fa565 13 *
kanpapa 1:2705be49d5e2 14 * // LEDMatrix mbed
kanpapa 1:2705be49d5e2 15 * // ---------- --------
kanpapa 1:2705be49d5e2 16 * // 1 LED_PWR
kanpapa 1:2705be49d5e2 17 * // 2 SIN_1 ----- p5 line
kanpapa 1:2705be49d5e2 18 * // 3 SIN_2 ----- p6 LED1 row
kanpapa 1:2705be49d5e2 19 * // 4 SIN_3 ----- p7 LED2 row
kanpapa 1:2705be49d5e2 20 * // 5 CLOCK ----- p8
kanpapa 1:2705be49d5e2 21 * // 6 LATCH ----- p9
kanpapa 1:2705be49d5e2 22 * // 7 STROBE ---- p10
kanpapa 1:2705be49d5e2 23 * // 8 IC_PWR
kanpapa 1:2705be49d5e2 24 * // 9 GND
kanpapa 1:2705be49d5e2 25 * // 10 GND
kanpapa 1:2705be49d5e2 26 *
kanpapa 7:2daedb892e15 27 * // rowsize = 4
kanpapa 5:c055674c4a0b 28 * // dynamic_delay = 1000
kanpapa 5:c055674c4a0b 29 * // scroll_delay = 50
kanpapa 5:c055674c4a0b 30 *
kanpapa 7:2daedb892e15 31 * AkiLedMatrix ledmatrix(p5, p6, p7, p8, p9, p10, 4, 1000, 50);
kanpapa 0:bf351a2fa565 32 *
kanpapa 0:bf351a2fa565 33 * int main() {
kanpapa 1:2705be49d5e2 34 * const unsigned char buf[] = {
kanpapa 1:2705be49d5e2 35 * 0xff,0xff,0xff,0xff, // D15
kanpapa 1:2705be49d5e2 36 * 0xff,0xff,0xff,0xff, // D14
kanpapa 1:2705be49d5e2 37 * 0xff,0xff,0xff,0xff, // D13
kanpapa 1:2705be49d5e2 38 * 0xff,0xe7,0xff,0xfc, // D12
kanpapa 1:2705be49d5e2 39 * 0xff,0xe7,0xff,0xfc, // D11
kanpapa 1:2705be49d5e2 40 * 0xff,0xe7,0xff,0xfc, // D10
kanpapa 1:2705be49d5e2 41 * 0x44,0x60,0xe0,0xe0, // D9
kanpapa 1:2705be49d5e2 42 * 0x00,0x20,0x40,0x40, // D8
kanpapa 1:2705be49d5e2 43 * 0x33,0x26,0x4e,0x4c, // D7
kanpapa 1:2705be49d5e2 44 * 0x33,0x26,0x40,0x4c, // D6
kanpapa 1:2705be49d5e2 45 * 0x33,0x26,0x4f,0xcc, // D5
kanpapa 1:2705be49d5e2 46 * 0x33,0x20,0x60,0xc0, // D4
kanpapa 1:2705be49d5e2 47 * 0x33,0x28,0xf1,0xe4, // D3
kanpapa 1:2705be49d5e2 48 * 0xff,0xff,0xff,0xff, // D2
kanpapa 1:2705be49d5e2 49 * 0xff,0xff,0xff,0xff, // D1
kanpapa 1:2705be49d5e2 50 * 0xff,0xff,0xff,0xff}; // D0
kanpapa 1:2705be49d5e2 51 *
kanpapa 1:2705be49d5e2 52 * while(1){
kanpapa 5:c055674c4a0b 53 * ledmatrix.display(buf);
kanpapa 1:2705be49d5e2 54 * }
kanpapa 0:bf351a2fa565 55 * }
kanpapa 0:bf351a2fa565 56 * @endcode
kanpapa 0:bf351a2fa565 57 */
kanpapa 5:c055674c4a0b 58
kanpapa 0:bf351a2fa565 59 class AkiLedMatrix {
kanpapa 0:bf351a2fa565 60 public:
kanpapa 1:2705be49d5e2 61 /** Create AkiLedMatrix instance
kanpapa 1:2705be49d5e2 62 * @param sin1 SIN_1
kanpapa 1:2705be49d5e2 63 * @param sin2 SIN_2
kanpapa 1:2705be49d5e2 64 * @param sin3 SIN_3
kanpapa 1:2705be49d5e2 65 * @param clock CLOCK IN
kanpapa 1:2705be49d5e2 66 * @param latch LATCH IN
kanpapa 1:2705be49d5e2 67 * @param strobe STROBE IN
kanpapa 7:2daedb892e15 68 * @param rowsize LED buffer row size
kanpapa 5:c055674c4a0b 69 * @param delay Dynamic display delay in microseconds
kanpapa 5:c055674c4a0b 70 * @param shift_count_init scroll timing
kanpapa 1:2705be49d5e2 71 */
kanpapa 0:bf351a2fa565 72 AkiLedMatrix(PinName sin1,
kanpapa 0:bf351a2fa565 73 PinName sin2,
kanpapa 0:bf351a2fa565 74 PinName sin3,
kanpapa 0:bf351a2fa565 75 PinName clock,
kanpapa 0:bf351a2fa565 76 PinName latch,
kanpapa 1:2705be49d5e2 77 PinName strobe,
kanpapa 7:2daedb892e15 78 const int rowsize,
kanpapa 5:c055674c4a0b 79 const int delay,
kanpapa 5:c055674c4a0b 80 const int shift_count_init);
kanpapa 0:bf351a2fa565 81
kanpapa 5:c055674c4a0b 82 /** Displays the contents of the buffer
kanpapa 5:c055674c4a0b 83 *
kanpapa 5:c055674c4a0b 84 * @param buffer Display buffer
kanpapa 5:c055674c4a0b 85 * @returns
kanpapa 5:c055674c4a0b 86 * void
kanpapa 5:c055674c4a0b 87 */
kanpapa 5:c055674c4a0b 88 void display(unsigned char *buffer);
kanpapa 5:c055674c4a0b 89
kanpapa 7:2daedb892e15 90 /** Get row size
kanpapa 5:c055674c4a0b 91 *
kanpapa 5:c055674c4a0b 92 * @param
kanpapa 5:c055674c4a0b 93 * void
kanpapa 5:c055674c4a0b 94 * @returns
kanpapa 7:2daedb892e15 95 * LED buffer row size
kanpapa 5:c055674c4a0b 96 */
kanpapa 7:2daedb892e15 97 int getrowsize();
kanpapa 0:bf351a2fa565 98
kanpapa 0:bf351a2fa565 99 private:
kanpapa 5:c055674c4a0b 100 /** bit left shift
kanpapa 5:c055674c4a0b 101 *
kanpapa 5:c055674c4a0b 102 * @param
kanpapa 5:c055674c4a0b 103 * unsigned char *array LED display buffer
kanpapa 5:c055674c4a0b 104 * int xsize row char size
kanpapa 5:c055674c4a0b 105 * @returns
kanpapa 5:c055674c4a0b 106 * void
kanpapa 5:c055674c4a0b 107 */
kanpapa 5:c055674c4a0b 108 void bitshift(unsigned char *array, int xsize);
kanpapa 5:c055674c4a0b 109
kanpapa 0:bf351a2fa565 110 DigitalOut _sin1,_sin2,_sin3,_clock,_latch,_strobe;
kanpapa 7:2daedb892e15 111 const int _rowsize;
kanpapa 5:c055674c4a0b 112 const int _delay;
kanpapa 5:c055674c4a0b 113 const int _shift_count_init;
kanpapa 5:c055674c4a0b 114 int shift_count;
kanpapa 0:bf351a2fa565 115 };
kanpapa 0:bf351a2fa565 116
kanpapa 5:c055674c4a0b 117 #endif