panneau

Dependencies:   mbed

Committer:
baptistepennelle
Date:
Tue May 15 11:58:50 2018 +0000
Revision:
0:b8e5f03fdaaf
panneau

Who changed what in which revision?

UserRevisionLine numberNew contents of line
baptistepennelle 0:b8e5f03fdaaf 1 /**
baptistepennelle 0:b8e5f03fdaaf 2 * LED Matrix library for http://www.seeedstudio.com/depot/ultrathin-16x32-red-led-matrix-panel-p-1582.html
baptistepennelle 0:b8e5f03fdaaf 3 * The LED Matrix panel has 32x16 pixels. Several panel can be combined together as a large screen.
baptistepennelle 0:b8e5f03fdaaf 4 *
baptistepennelle 0:b8e5f03fdaaf 5 * Coordinate & Connection (mbed -> panel 0 -> panel 1 -> ...)
baptistepennelle 0:b8e5f03fdaaf 6 * (0, 0) (0, 0)
baptistepennelle 0:b8e5f03fdaaf 7 * +--------+--------+--------+ +--------+--------+
baptistepennelle 0:b8e5f03fdaaf 8 * | 5 | 3 | 1 | | 1 | 0 |
baptistepennelle 0:b8e5f03fdaaf 9 * | | | | | | |<----- mbed
baptistepennelle 0:b8e5f03fdaaf 10 * +--------+--------+--------+ +--------+--------+
baptistepennelle 0:b8e5f03fdaaf 11 * | 4 | 2 | 0 | (64, 16)
baptistepennelle 0:b8e5f03fdaaf 12 * | | | |<----- mbed
baptistepennelle 0:b8e5f03fdaaf 13 * +--------+--------+--------+
baptistepennelle 0:b8e5f03fdaaf 14 * (96, 32)
baptistepennelle 0:b8e5f03fdaaf 15 * Copyright (c) 2013 Seeed Technology Inc.
baptistepennelle 0:b8e5f03fdaaf 16 * @auther Yihui Xiong
baptistepennelle 0:b8e5f03fdaaf 17 * @date Nov 7, 2013
baptistepennelle 0:b8e5f03fdaaf 18 * @license Apache
baptistepennelle 0:b8e5f03fdaaf 19 */
baptistepennelle 0:b8e5f03fdaaf 20
baptistepennelle 0:b8e5f03fdaaf 21
baptistepennelle 0:b8e5f03fdaaf 22 #ifndef __LED_MATRIX_H__
baptistepennelle 0:b8e5f03fdaaf 23 #define __LED_MATRIX_H__
baptistepennelle 0:b8e5f03fdaaf 24
baptistepennelle 0:b8e5f03fdaaf 25 #include "mbed.h"
baptistepennelle 0:b8e5f03fdaaf 26 #include "fonts.h"
baptistepennelle 0:b8e5f03fdaaf 27
baptistepennelle 0:b8e5f03fdaaf 28 class LEDMatrix {
baptistepennelle 0:b8e5f03fdaaf 29 public:
baptistepennelle 0:b8e5f03fdaaf 30 LEDMatrix(PinName pinA, PinName pinB, PinName pinC, PinName pinD, PinName pinOE,
baptistepennelle 0:b8e5f03fdaaf 31 PinName pinR1, PinName pinR2, PinName pinB1, PinName pinB2, PinName pinG1, PinName pinG2,
baptistepennelle 0:b8e5f03fdaaf 32 PinName pinG3,PinName pinR3, PinName pinB3, PinName pinR4, PinName pinG4,PinName pinB4,
baptistepennelle 0:b8e5f03fdaaf 33 PinName pinSTB, PinName pinCLK);
baptistepennelle 0:b8e5f03fdaaf 34
baptistepennelle 0:b8e5f03fdaaf 35 /**
baptistepennelle 0:b8e5f03fdaaf 36 * set the display's display buffer and number, the buffer's size must be not less than 512 * number / 8 bytes
baptistepennelle 0:b8e5f03fdaaf 37 * @param displaybuf display buffer
baptistepennelle 0:b8e5f03fdaaf 38 * @param number panels' number
baptistepennelle 0:b8e5f03fdaaf 39 */
baptistepennelle 0:b8e5f03fdaaf 40 void begin(uint8_t *displaybuf, uint16_t width, uint16_t height);
baptistepennelle 0:b8e5f03fdaaf 41
baptistepennelle 0:b8e5f03fdaaf 42 /**
baptistepennelle 0:b8e5f03fdaaf 43 * draw a point
baptistepennelle 0:b8e5f03fdaaf 44 * @param x x
baptistepennelle 0:b8e5f03fdaaf 45 * @param y y
baptistepennelle 0:b8e5f03fdaaf 46 * @param pixel 0: led off, >0: led on
baptistepennelle 0:b8e5f03fdaaf 47 */
baptistepennelle 0:b8e5f03fdaaf 48 void drawPoint(uint16_t x, uint16_t y, uint8_t pixel);
baptistepennelle 0:b8e5f03fdaaf 49
baptistepennelle 0:b8e5f03fdaaf 50 /**
baptistepennelle 0:b8e5f03fdaaf 51 * draw a rect
baptistepennelle 0:b8e5f03fdaaf 52 * @param (x1, y1) top-left position
baptistepennelle 0:b8e5f03fdaaf 53 * @param (x2, y2) bottom-right position, not included in the rect
baptistepennelle 0:b8e5f03fdaaf 54 * @param pixel 0: rect off, >0: rect on
baptistepennelle 0:b8e5f03fdaaf 55 */
baptistepennelle 0:b8e5f03fdaaf 56 void drawRect(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint8_t pixel);
baptistepennelle 0:b8e5f03fdaaf 57
baptistepennelle 0:b8e5f03fdaaf 58 int drawChar(uint16_t x, uint16_t y, char c, uint8_t pixel, Font *font);
baptistepennelle 0:b8e5f03fdaaf 59
baptistepennelle 0:b8e5f03fdaaf 60 void drawCharString (uint16_t x, uint16_t y, char *c, uint8_t pixel, Font *font);
baptistepennelle 0:b8e5f03fdaaf 61
baptistepennelle 0:b8e5f03fdaaf 62 void drawCharBig(uint16_t x, uint16_t y, char c, uint8_t pixel);
baptistepennelle 0:b8e5f03fdaaf 63
baptistepennelle 0:b8e5f03fdaaf 64 /**
baptistepennelle 0:b8e5f03fdaaf 65 * draw a image
baptistepennelle 0:b8e5f03fdaaf 66 * @param (x1, y1) top-left position
baptistepennelle 0:b8e5f03fdaaf 67 * @param (x2, y2) bottom-right position, not included in the rect
baptistepennelle 0:b8e5f03fdaaf 68 * @param pixels contents, 1 bit to 1 led
baptistepennelle 0:b8e5f03fdaaf 69 */
baptistepennelle 0:b8e5f03fdaaf 70 void drawImage(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint8_t *image);
baptistepennelle 0:b8e5f03fdaaf 71
baptistepennelle 0:b8e5f03fdaaf 72 /**
baptistepennelle 0:b8e5f03fdaaf 73 * Set screen buffer to zero
baptistepennelle 0:b8e5f03fdaaf 74 */
baptistepennelle 0:b8e5f03fdaaf 75 void clear();
baptistepennelle 0:b8e5f03fdaaf 76
baptistepennelle 0:b8e5f03fdaaf 77 /**
baptistepennelle 0:b8e5f03fdaaf 78 * turn off 1/16 leds and turn on another 1/16 leds
baptistepennelle 0:b8e5f03fdaaf 79 */
baptistepennelle 0:b8e5f03fdaaf 80 void scan();
baptistepennelle 0:b8e5f03fdaaf 81
baptistepennelle 0:b8e5f03fdaaf 82 void reverse();
baptistepennelle 0:b8e5f03fdaaf 83
baptistepennelle 0:b8e5f03fdaaf 84 uint8_t isReversed();
baptistepennelle 0:b8e5f03fdaaf 85
baptistepennelle 0:b8e5f03fdaaf 86 void on();
baptistepennelle 0:b8e5f03fdaaf 87
baptistepennelle 0:b8e5f03fdaaf 88 void off();
baptistepennelle 0:b8e5f03fdaaf 89
baptistepennelle 0:b8e5f03fdaaf 90 void swap();
baptistepennelle 0:b8e5f03fdaaf 91
baptistepennelle 0:b8e5f03fdaaf 92 int synchro();
baptistepennelle 0:b8e5f03fdaaf 93
baptistepennelle 0:b8e5f03fdaaf 94 private:
baptistepennelle 0:b8e5f03fdaaf 95 DigitalOut a, b, c, d, oe, r1, r2, b1, b2, g1, g2, g3, r3, b3, r4, g4, b4, stb, clk;
baptistepennelle 0:b8e5f03fdaaf 96 uint8_t *displaybuf, *memoBuf, *drawBuf;
baptistepennelle 0:b8e5f03fdaaf 97 uint16_t width;
baptistepennelle 0:b8e5f03fdaaf 98 uint16_t height;
baptistepennelle 0:b8e5f03fdaaf 99 uint8_t mask;
baptistepennelle 0:b8e5f03fdaaf 100 uint8_t state;
baptistepennelle 0:b8e5f03fdaaf 101 int bufferIndex;
baptistepennelle 0:b8e5f03fdaaf 102 volatile int flagSwap;
baptistepennelle 0:b8e5f03fdaaf 103 };
baptistepennelle 0:b8e5f03fdaaf 104
baptistepennelle 0:b8e5f03fdaaf 105 #endif