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@1:79cf2e115449, 2016-01-11 (annotated)
- Committer:
- Bobty
- Date:
- Mon Jan 11 21:05:53 2016 +0000
- Revision:
- 1:79cf2e115449
- Parent:
- 0:13728deac7a7
- Child:
- 2:cd2da920cf98
Implemented horizontal scrolling
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(); |
| Bobty | 1:79cf2e115449 | 79 | |
| Bobty | 1:79cf2e115449 | 80 | void scrollLeft(); |
| Bobty | 1:79cf2e115449 | 81 | void scrollReset(); |
| Bobty | 1:79cf2e115449 | 82 | void scrollToPos(int pos); |
| yihui | 0:13728deac7a7 | 83 | |
| yihui | 0:13728deac7a7 | 84 | private: |
| yihui | 0:13728deac7a7 | 85 | DigitalOut a, b, c, d, oe, r1, stb, clk; |
| yihui | 0:13728deac7a7 | 86 | uint8_t *displaybuf; |
| yihui | 0:13728deac7a7 | 87 | uint16_t width; |
| yihui | 0:13728deac7a7 | 88 | uint16_t height; |
| yihui | 0:13728deac7a7 | 89 | uint8_t mask; |
| yihui | 0:13728deac7a7 | 90 | uint8_t state; |
| Bobty | 1:79cf2e115449 | 91 | int _horizontalScrollPos; |
| yihui | 0:13728deac7a7 | 92 | }; |
| yihui | 0:13728deac7a7 | 93 | |
| yihui | 0:13728deac7a7 | 94 | #endif |
