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 14:00:10 2013 +0000
Revision:
12:4e85b39e922b
Parent:
8:6afa319e06e8
bugfix. add ledunit param.

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 12:4e85b39e922b 27 * // ledunit = 1 units
kanpapa 12:4e85b39e922b 28 * // rowsize = 4 bytes
kanpapa 12:4e85b39e922b 29 * // dynamic_delay = 1000 us
kanpapa 12:4e85b39e922b 30 * // scroll_delay = 50 count
kanpapa 5:c055674c4a0b 31 *
kanpapa 12:4e85b39e922b 32 * AkiLedMatrix ledmatrix(p5, p6, p7, p8, p9, p10, 1, 4, 1000, 50);
kanpapa 0:bf351a2fa565 33 *
kanpapa 0:bf351a2fa565 34 * int main() {
kanpapa 1:2705be49d5e2 35 * const unsigned char buf[] = {
kanpapa 1:2705be49d5e2 36 * 0xff,0xff,0xff,0xff, // D15
kanpapa 1:2705be49d5e2 37 * 0xff,0xff,0xff,0xff, // D14
kanpapa 1:2705be49d5e2 38 * 0xff,0xff,0xff,0xff, // D13
kanpapa 1:2705be49d5e2 39 * 0xff,0xe7,0xff,0xfc, // D12
kanpapa 1:2705be49d5e2 40 * 0xff,0xe7,0xff,0xfc, // D11
kanpapa 1:2705be49d5e2 41 * 0xff,0xe7,0xff,0xfc, // D10
kanpapa 1:2705be49d5e2 42 * 0x44,0x60,0xe0,0xe0, // D9
kanpapa 1:2705be49d5e2 43 * 0x00,0x20,0x40,0x40, // D8
kanpapa 1:2705be49d5e2 44 * 0x33,0x26,0x4e,0x4c, // D7
kanpapa 1:2705be49d5e2 45 * 0x33,0x26,0x40,0x4c, // D6
kanpapa 1:2705be49d5e2 46 * 0x33,0x26,0x4f,0xcc, // D5
kanpapa 1:2705be49d5e2 47 * 0x33,0x20,0x60,0xc0, // D4
kanpapa 1:2705be49d5e2 48 * 0x33,0x28,0xf1,0xe4, // D3
kanpapa 1:2705be49d5e2 49 * 0xff,0xff,0xff,0xff, // D2
kanpapa 1:2705be49d5e2 50 * 0xff,0xff,0xff,0xff, // D1
kanpapa 1:2705be49d5e2 51 * 0xff,0xff,0xff,0xff}; // D0
kanpapa 1:2705be49d5e2 52 *
kanpapa 1:2705be49d5e2 53 * while(1){
kanpapa 5:c055674c4a0b 54 * ledmatrix.display(buf);
kanpapa 1:2705be49d5e2 55 * }
kanpapa 0:bf351a2fa565 56 * }
kanpapa 0:bf351a2fa565 57 * @endcode
kanpapa 0:bf351a2fa565 58 */
kanpapa 5:c055674c4a0b 59
kanpapa 0:bf351a2fa565 60 class AkiLedMatrix {
kanpapa 0:bf351a2fa565 61 public:
kanpapa 1:2705be49d5e2 62 /** Create AkiLedMatrix instance
kanpapa 1:2705be49d5e2 63 * @param sin1 SIN_1
kanpapa 1:2705be49d5e2 64 * @param sin2 SIN_2
kanpapa 1:2705be49d5e2 65 * @param sin3 SIN_3
kanpapa 1:2705be49d5e2 66 * @param clock CLOCK IN
kanpapa 1:2705be49d5e2 67 * @param latch LATCH IN
kanpapa 1:2705be49d5e2 68 * @param strobe STROBE IN
kanpapa 12:4e85b39e922b 69 * @param ledunit Number of LED units
kanpapa 7:2daedb892e15 70 * @param rowsize LED buffer row size
kanpapa 5:c055674c4a0b 71 * @param delay Dynamic display delay in microseconds
kanpapa 12:4e85b39e922b 72 * @param shift_count_init scroll timing. if 0 is No scroll.
kanpapa 1:2705be49d5e2 73 */
kanpapa 0:bf351a2fa565 74 AkiLedMatrix(PinName sin1,
kanpapa 0:bf351a2fa565 75 PinName sin2,
kanpapa 0:bf351a2fa565 76 PinName sin3,
kanpapa 0:bf351a2fa565 77 PinName clock,
kanpapa 0:bf351a2fa565 78 PinName latch,
kanpapa 1:2705be49d5e2 79 PinName strobe,
kanpapa 12:4e85b39e922b 80 const int ledunit,
kanpapa 7:2daedb892e15 81 const int rowsize,
kanpapa 5:c055674c4a0b 82 const int delay,
kanpapa 5:c055674c4a0b 83 const int shift_count_init);
kanpapa 0:bf351a2fa565 84
kanpapa 5:c055674c4a0b 85 /** Displays the contents of the buffer
kanpapa 5:c055674c4a0b 86 *
kanpapa 5:c055674c4a0b 87 * @param buffer Display buffer
kanpapa 5:c055674c4a0b 88 * @returns
kanpapa 5:c055674c4a0b 89 * void
kanpapa 5:c055674c4a0b 90 */
kanpapa 5:c055674c4a0b 91 void display(unsigned char *buffer);
kanpapa 5:c055674c4a0b 92
kanpapa 12:4e85b39e922b 93 /** Get number of LED units connecting
kanpapa 12:4e85b39e922b 94 *
kanpapa 12:4e85b39e922b 95 * @param
kanpapa 12:4e85b39e922b 96 * void
kanpapa 12:4e85b39e922b 97 * @returns
kanpapa 12:4e85b39e922b 98 * number of LED units
kanpapa 12:4e85b39e922b 99 */
kanpapa 12:4e85b39e922b 100 int getledunit();
kanpapa 12:4e85b39e922b 101
kanpapa 8:6afa319e06e8 102 /** Get LED buffer row size
kanpapa 5:c055674c4a0b 103 *
kanpapa 5:c055674c4a0b 104 * @param
kanpapa 5:c055674c4a0b 105 * void
kanpapa 5:c055674c4a0b 106 * @returns
kanpapa 7:2daedb892e15 107 * LED buffer row size
kanpapa 5:c055674c4a0b 108 */
kanpapa 7:2daedb892e15 109 int getrowsize();
kanpapa 0:bf351a2fa565 110
kanpapa 0:bf351a2fa565 111 private:
kanpapa 5:c055674c4a0b 112 /** bit left shift
kanpapa 5:c055674c4a0b 113 *
kanpapa 5:c055674c4a0b 114 * @param
kanpapa 5:c055674c4a0b 115 * unsigned char *array LED display buffer
kanpapa 5:c055674c4a0b 116 * int xsize row char size
kanpapa 5:c055674c4a0b 117 * @returns
kanpapa 5:c055674c4a0b 118 * void
kanpapa 5:c055674c4a0b 119 */
kanpapa 5:c055674c4a0b 120 void bitshift(unsigned char *array, int xsize);
kanpapa 5:c055674c4a0b 121
kanpapa 0:bf351a2fa565 122 DigitalOut _sin1,_sin2,_sin3,_clock,_latch,_strobe;
kanpapa 12:4e85b39e922b 123 const int _ledunit;
kanpapa 7:2daedb892e15 124 const int _rowsize;
kanpapa 5:c055674c4a0b 125 const int _delay;
kanpapa 5:c055674c4a0b 126 const int _shift_count_init;
kanpapa 5:c055674c4a0b 127 int shift_count;
kanpapa 0:bf351a2fa565 128 };
kanpapa 0:bf351a2fa565 129
kanpapa 5:c055674c4a0b 130 #endif