Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of LEDMatrix by
LEDMatrix.h@0:13728deac7a7, 2013-11-08 (annotated)
- Committer:
- yihui
- Date:
- Fri Nov 08 06:45:52 2013 +0000
- Revision:
- 0:13728deac7a7
- Child:
- 1:79cf2e115449
initial
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| yihui | 0:13728deac7a7 | 1 | /** |
| yihui | 0:13728deac7a7 | 2 | * LED Matrix library for http://www.seeedstudio.com/depot/ultrathin-16x32-red-led-matrix-panel-p-1582.html |
| yihui | 0:13728deac7a7 | 3 | * The LED Matrix panel has 32x16 pixels. Several panel can be combined together as a large screen. |
| yihui | 0:13728deac7a7 | 4 | * |
| yihui | 0:13728deac7a7 | 5 | * Coordinate & Connection (mbed -> panel 0 -> panel 1 -> ...) |
| yihui | 0:13728deac7a7 | 6 | * (0, 0) (0, 0) |
| yihui | 0:13728deac7a7 | 7 | * +--------+--------+--------+ +--------+--------+ |
| yihui | 0:13728deac7a7 | 8 | * | 5 | 3 | 1 | | 1 | 0 | |
| yihui | 0:13728deac7a7 | 9 | * | | | | | | |<----- mbed |
| yihui | 0:13728deac7a7 | 10 | * +--------+--------+--------+ +--------+--------+ |
| yihui | 0:13728deac7a7 | 11 | * | 4 | 2 | 0 | (64, 16) |
| yihui | 0:13728deac7a7 | 12 | * | | | |<----- mbed |
| yihui | 0:13728deac7a7 | 13 | * +--------+--------+--------+ |
| yihui | 0:13728deac7a7 | 14 | * (96, 32) |
| yihui | 0:13728deac7a7 | 15 | * Copyright (c) 2013 Seeed Technology Inc. |
| yihui | 0:13728deac7a7 | 16 | * @auther Yihui Xiong |
| yihui | 0:13728deac7a7 | 17 | * @date Nov 7, 2013 |
| yihui | 0:13728deac7a7 | 18 | * @license Apache |
| yihui | 0:13728deac7a7 | 19 | */ |
| yihui | 0:13728deac7a7 | 20 | |
| yihui | 0:13728deac7a7 | 21 | |
| yihui | 0:13728deac7a7 | 22 | #ifndef __LED_MATRIX_H__ |
| yihui | 0:13728deac7a7 | 23 | #define __LED_MATRIX_H__ |
| yihui | 0:13728deac7a7 | 24 | |
| yihui | 0:13728deac7a7 | 25 | #include "mbed.h" |
| yihui | 0:13728deac7a7 | 26 | |
| yihui | 0:13728deac7a7 | 27 | class LEDMatrix { |
| yihui | 0:13728deac7a7 | 28 | public: |
| yihui | 0:13728deac7a7 | 29 | LEDMatrix(PinName pinA, PinName pinB, PinName pinC, PinName pinD, PinName pinOE, PinName pinR1, PinName pinSTB, PinName pinCLK); |
| yihui | 0:13728deac7a7 | 30 | |
| yihui | 0:13728deac7a7 | 31 | /** |
| yihui | 0:13728deac7a7 | 32 | * set the display's display buffer and number, the buffer's size must be not less than 512 * number / 8 bytes |
| yihui | 0:13728deac7a7 | 33 | * @param displaybuf display buffer |
| yihui | 0:13728deac7a7 | 34 | * @param number panels' number |
| yihui | 0:13728deac7a7 | 35 | */ |
| yihui | 0:13728deac7a7 | 36 | void begin(uint8_t *displaybuf, uint16_t width, uint16_t height); |
| yihui | 0:13728deac7a7 | 37 | |
| yihui | 0:13728deac7a7 | 38 | /** |
| yihui | 0:13728deac7a7 | 39 | * draw a point |
| yihui | 0:13728deac7a7 | 40 | * @param x x |
| yihui | 0:13728deac7a7 | 41 | * @param y y |
| yihui | 0:13728deac7a7 | 42 | * @param pixel 0: led off, >0: led on |
| yihui | 0:13728deac7a7 | 43 | */ |
| yihui | 0:13728deac7a7 | 44 | void drawPoint(uint16_t x, uint16_t y, uint8_t pixel); |
| yihui | 0:13728deac7a7 | 45 | |
| yihui | 0:13728deac7a7 | 46 | /** |
| yihui | 0:13728deac7a7 | 47 | * draw a rect |
| yihui | 0:13728deac7a7 | 48 | * @param (x1, y1) top-left position |
| yihui | 0:13728deac7a7 | 49 | * @param (x2, y2) bottom-right position, not included in the rect |
| yihui | 0:13728deac7a7 | 50 | * @param pixel 0: rect off, >0: rect on |
| yihui | 0:13728deac7a7 | 51 | */ |
| yihui | 0:13728deac7a7 | 52 | void drawRect(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint8_t pixel); |
| yihui | 0:13728deac7a7 | 53 | |
| yihui | 0:13728deac7a7 | 54 | /** |
| yihui | 0:13728deac7a7 | 55 | * draw a image |
| yihui | 0:13728deac7a7 | 56 | * @param (x1, y1) top-left position |
| yihui | 0:13728deac7a7 | 57 | * @param (x2, y2) bottom-right position, not included in the rect |
| yihui | 0:13728deac7a7 | 58 | * @param pixels contents, 1 bit to 1 led |
| yihui | 0:13728deac7a7 | 59 | */ |
| yihui | 0:13728deac7a7 | 60 | void drawImage(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint8_t *image); |
| yihui | 0:13728deac7a7 | 61 | |
| yihui | 0:13728deac7a7 | 62 | /** |
| yihui | 0:13728deac7a7 | 63 | * Set screen buffer to zero |
| yihui | 0:13728deac7a7 | 64 | */ |
| yihui | 0:13728deac7a7 | 65 | void clear(); |
| yihui | 0:13728deac7a7 | 66 | |
| yihui | 0:13728deac7a7 | 67 | /** |
| yihui | 0:13728deac7a7 | 68 | * turn off 1/16 leds and turn on another 1/16 leds |
| yihui | 0:13728deac7a7 | 69 | */ |
| yihui | 0:13728deac7a7 | 70 | void scan(); |
| yihui | 0:13728deac7a7 | 71 | |
| yihui | 0:13728deac7a7 | 72 | void reverse(); |
| yihui | 0:13728deac7a7 | 73 | |
| yihui | 0:13728deac7a7 | 74 | uint8_t isReversed(); |
| yihui | 0:13728deac7a7 | 75 | |
| yihui | 0:13728deac7a7 | 76 | void on(); |
| yihui | 0:13728deac7a7 | 77 | |
| yihui | 0:13728deac7a7 | 78 | void off(); |
| yihui | 0:13728deac7a7 | 79 | |
| yihui | 0:13728deac7a7 | 80 | private: |
| yihui | 0:13728deac7a7 | 81 | DigitalOut a, b, c, d, oe, r1, stb, clk; |
| yihui | 0:13728deac7a7 | 82 | uint8_t *displaybuf; |
| yihui | 0:13728deac7a7 | 83 | uint16_t width; |
| yihui | 0:13728deac7a7 | 84 | uint16_t height; |
| yihui | 0:13728deac7a7 | 85 | uint8_t mask; |
| yihui | 0:13728deac7a7 | 86 | uint8_t state; |
| yihui | 0:13728deac7a7 | 87 | }; |
| yihui | 0:13728deac7a7 | 88 | |
| yihui | 0:13728deac7a7 | 89 | #endif |
