Princeton PT6964 LED controller supports 4 Digits @ 13 Segments, 5 Digits @ 12 Segments, 6 Digits @ 11 Segments or 7 Digits @ 10 Segments. Also supports a scanned keyboard of upto 20 keys. SPI bus interface.

Dependents:   mbed_PT6964

Princeton PT6964 LED controller supports 4 Digits @ 13 Segments, 5 Digits @ 12 Segments, 6 Digits @ 11 Segments or 7 Digits @ 10 Segments. Also supports a scanned keyboard of upto 20 keys. SPI bus interface.

See Component page here.

Committer:
wim
Date:
Thu Jan 14 20:09:52 2016 +0000
Revision:
2:eaf2f5d1af34
Parent:
1:1adf993a3e34
Refactored display and keyboard defines

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 0:27f32a087e5a 1 /* mbed PT6964 Library, for PT6964 LED controller
wim 0:27f32a087e5a 2 * Copyright (c) 2015, v01: WH, Initial version
wim 1:1adf993a3e34 3 * 2015, v02: WH, rename Digit/Grid
wim 1:1adf993a3e34 4 * 2016, v03: WH, updated Icon handling, UDCs and _putc()
wim 2:eaf2f5d1af34 5 * 2016, v04: WH, Refactored display and keyboard defines
wim 0:27f32a087e5a 6 *
wim 0:27f32a087e5a 7 * Permission is hereby granted, free of charge, to any person obtaining a copy
wim 0:27f32a087e5a 8 * of this software and associated documentation files (the "Software"), to deal
wim 0:27f32a087e5a 9 * in the Software without restriction, including without limitation the rights
wim 0:27f32a087e5a 10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
wim 0:27f32a087e5a 11 * copies of the Software, and to permit persons to whom the Software is
wim 0:27f32a087e5a 12 * furnished to do so, subject to the following conditions:
wim 0:27f32a087e5a 13 *
wim 0:27f32a087e5a 14 * The above copyright notice and this permission notice shall be included in
wim 0:27f32a087e5a 15 * all copies or substantial portions of the Software.
wim 0:27f32a087e5a 16 *
wim 0:27f32a087e5a 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
wim 0:27f32a087e5a 18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
wim 0:27f32a087e5a 19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
wim 0:27f32a087e5a 20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
wim 0:27f32a087e5a 21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
wim 0:27f32a087e5a 22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
wim 0:27f32a087e5a 23 * THE SOFTWARE.
wim 0:27f32a087e5a 24 */
wim 0:27f32a087e5a 25
wim 0:27f32a087e5a 26 #ifndef PT6964_H
wim 0:27f32a087e5a 27 #define PT6964_H
wim 0:27f32a087e5a 28
wim 0:27f32a087e5a 29 #include "Font_7Seg.h"
wim 0:27f32a087e5a 30
wim 0:27f32a087e5a 31 /** An interface for driving PT6964 LED controller
wim 0:27f32a087e5a 32 *
wim 0:27f32a087e5a 33 * @code
wim 0:27f32a087e5a 34 * #include "mbed.h"
wim 0:27f32a087e5a 35 * #include "PT6964.h"
wim 0:27f32a087e5a 36 *
wim 0:27f32a087e5a 37 * DisplayData_t size is 8 bytes (4 grids @ 13 segments) OR 10 bytes (5 grids @ 12 segments) OR
wim 0:27f32a087e5a 38 * 12 bytes (6 grids @ 11 segments) OR 14 bytes (7 grids @ 10 segments)
wim 0:27f32a087e5a 39 * PT6964::DisplayData_t mbed_str = {0xDA,0x00, 0x7C,0x00, 0x3C,0x01, 0xF6,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
wim 0:27f32a087e5a 40 * PT6964::DisplayData_t all_str = {0xFF,0x0F, 0xFF,0x0F, 0xFF,0x0F, 0xFF,0x0F, 0xFF,0x0F, 0xFF,0x0F, 0xFF,0x0F};
wim 0:27f32a087e5a 41 *
wim 0:27f32a087e5a 42 * // KeyData_t size is 5 bytes
wim 0:27f32a087e5a 43 * PT6964::KeyData_t keydata;
wim 0:27f32a087e5a 44 *
wim 0:27f32a087e5a 45 * // PT6964 declaration, Default setting 7 Grids @ 10 Segments
wim 0:27f32a087e5a 46 * PT6964 PT6964(p5,p6,p7, p8);
wim 0:27f32a087e5a 47 *
wim 0:27f32a087e5a 48 * int main() {
wim 0:27f32a087e5a 49 * PT6964.cls();
wim 0:27f32a087e5a 50 * PT6964.writeData(all_str);
wim 0:27f32a087e5a 51 * wait(4);
wim 0:27f32a087e5a 52 * PT6964.writeData(mbed_str);
wim 0:27f32a087e5a 53 * wait(1);
wim 0:27f32a087e5a 54 * PT6964.setBrightness(PT6964_BRT0);
wim 0:27f32a087e5a 55 * wait(1);
wim 0:27f32a087e5a 56 * PT6964.setBrightness(PT6964_BRT3);
wim 0:27f32a087e5a 57 *
wim 0:27f32a087e5a 58 * while (1) {
wim 0:27f32a087e5a 59 * // Check and read keydata
wim 0:27f32a087e5a 60 * if (PT6964.getKeys(&keydata)) {
wim 0:27f32a087e5a 61 * pc.printf("Keydata 0..4 = 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\r\n", keydata[0], keydata[1], keydata[2], keydata[3], keydata[4]);
wim 0:27f32a087e5a 62 *
wim 0:27f32a087e5a 63 * if (keydata[0] == 0x10) { //sw2
wim 0:27f32a087e5a 64 * PT6964.cls();
wim 0:27f32a087e5a 65 * PT6964.writeData(all_str);
wim 0:27f32a087e5a 66 * }
wim 0:27f32a087e5a 67 * }
wim 0:27f32a087e5a 68 * }
wim 0:27f32a087e5a 69 * }
wim 0:27f32a087e5a 70 * @endcode
wim 0:27f32a087e5a 71 */
wim 0:27f32a087e5a 72
wim 2:eaf2f5d1af34 73 //PT6964 Display and Keymatrix data
wim 2:eaf2f5d1af34 74 #define PT6964_MAX_NR_GRIDS 7
wim 2:eaf2f5d1af34 75 #define PT6964_BYTES_PER_GRID 2
wim 2:eaf2f5d1af34 76 //Significant bits Keymatrix data
wim 2:eaf2f5d1af34 77 #define PT6964_KEY_MSK 0x1B
wim 2:eaf2f5d1af34 78
wim 0:27f32a087e5a 79 //Memory size in bytes for Display and Keymatrix
wim 2:eaf2f5d1af34 80 #define PT6964_DISPLAY_MEM (PT6964_MAX_NR_GRIDS * PT6964_BYTES_PER_GRID)
wim 0:27f32a087e5a 81 #define PT6964_KEY_MEM 5
wim 0:27f32a087e5a 82
wim 0:27f32a087e5a 83 //Reserved bits for commands
wim 0:27f32a087e5a 84 #define PT6964_CMD_MSK 0xC0
wim 0:27f32a087e5a 85
wim 0:27f32a087e5a 86 //Mode setting command
wim 0:27f32a087e5a 87 #define PT6964_MODE_SET_CMD 0x00
wim 0:27f32a087e5a 88 #define PT6964_GR4_SEG13 0x00
wim 0:27f32a087e5a 89 #define PT6964_GR5_SEG12 0x01
wim 0:27f32a087e5a 90 #define PT6964_GR6_SEG11 0x02
wim 0:27f32a087e5a 91 #define PT6964_GR7_SEG10 0x03 //default
wim 0:27f32a087e5a 92
wim 0:27f32a087e5a 93 //Data setting commands
wim 0:27f32a087e5a 94 #define PT6964_DATA_SET_CMD 0x40
wim 0:27f32a087e5a 95 #define PT6964_DATA_WR 0x00
wim 0:27f32a087e5a 96 #define PT6964_KEY_RD 0x02
wim 0:27f32a087e5a 97 #define PT6964_ADDR_INC 0x00
wim 0:27f32a087e5a 98 #define PT6964_ADDR_FIXED 0x04
wim 0:27f32a087e5a 99 #define PT6964_MODE_NORM 0x00
wim 0:27f32a087e5a 100 #define PT6964_MODE_TEST 0x08
wim 0:27f32a087e5a 101
wim 0:27f32a087e5a 102 //Address setting commands
wim 0:27f32a087e5a 103 #define PT6964_ADDR_SET_CMD 0xC0
wim 0:27f32a087e5a 104 #define PT6964_ADDR_MSK 0x0F
wim 0:27f32a087e5a 105
wim 0:27f32a087e5a 106 //Display control commands
wim 0:27f32a087e5a 107 #define PT6964_DSP_CTRL_CMD 0x80
wim 0:27f32a087e5a 108 #define PT6964_BRT_MSK 0x07
wim 0:27f32a087e5a 109 #define PT6964_BRT0 0x00 //Pulsewidth 1/16
wim 0:27f32a087e5a 110 #define PT6964_BRT1 0x01
wim 0:27f32a087e5a 111 #define PT6964_BRT2 0x02
wim 0:27f32a087e5a 112 #define PT6964_BRT3 0x03
wim 0:27f32a087e5a 113 #define PT6964_BRT4 0x04
wim 0:27f32a087e5a 114 #define PT6964_BRT5 0x05
wim 0:27f32a087e5a 115 #define PT6964_BRT6 0x06
wim 0:27f32a087e5a 116 #define PT6964_BRT7 0x07 //Pulsewidth 14/16
wim 0:27f32a087e5a 117
wim 0:27f32a087e5a 118 #define PT6964_BRT_DEF PT6964_BRT3
wim 0:27f32a087e5a 119
wim 0:27f32a087e5a 120 #define PT6964_DSP_OFF 0x00
wim 0:27f32a087e5a 121 #define PT6964_DSP_ON 0x08
wim 0:27f32a087e5a 122
wim 0:27f32a087e5a 123
wim 0:27f32a087e5a 124 /** A class for driving Princeton PT6964 LED controller
wim 0:27f32a087e5a 125 * Note: the PT6964 is also available from other chipvendors eg AIP1628, HT1628, CM1628, SM1628
wim 0:27f32a087e5a 126 *
wim 0:27f32a087e5a 127 * @brief Supports 4 Grids @ 13 Segments or 5 Grids @ 12 Segments or 6 Grids @ 11 Segments or 7 Grids @ 10 Segments.
wim 0:27f32a087e5a 128 * Also supports a scanned keyboard of upto 20 keys.
wim 0:27f32a087e5a 129 * SPI bus interface device.
wim 0:27f32a087e5a 130 */
wim 0:27f32a087e5a 131 class PT6964 {
wim 0:27f32a087e5a 132 public:
wim 0:27f32a087e5a 133
wim 0:27f32a087e5a 134 /** Enums for display mode */
wim 0:27f32a087e5a 135 enum Mode {
wim 0:27f32a087e5a 136 Grid4_Seg13 = PT6964_GR4_SEG13,
wim 0:27f32a087e5a 137 Grid5_Seg12 = PT6964_GR5_SEG12,
wim 0:27f32a087e5a 138 Grid6_Seg11 = PT6964_GR6_SEG11,
wim 0:27f32a087e5a 139 Grid7_Seg10 = PT6964_GR7_SEG10
wim 0:27f32a087e5a 140 };
wim 0:27f32a087e5a 141
wim 0:27f32a087e5a 142 /** Datatypes for display and keymatrix data */
wim 0:27f32a087e5a 143 typedef char DisplayData_t[PT6964_DISPLAY_MEM];
wim 0:27f32a087e5a 144 typedef char KeyData_t[PT6964_KEY_MEM];
wim 0:27f32a087e5a 145
wim 0:27f32a087e5a 146 /** Constructor for class for driving Princeton PT6964 LED controller
wim 0:27f32a087e5a 147 *
wim 0:27f32a087e5a 148 * @brief Supports 4 Grids @ 13 segments or 5 Grids @ 12 segments or 6 Grids @ 11 Segments or 7 Grids @ 10 Segments.
wim 0:27f32a087e5a 149 * Also supports a scanned keyboard of upto 20 keys.
wim 0:27f32a087e5a 150 * SPI bus interface device.
wim 0:27f32a087e5a 151 *
wim 0:27f32a087e5a 152 * @param PinName mosi, miso, sclk, cs SPI bus pins
wim 0:27f32a087e5a 153 * @param Mode selects either Grids/Segments (default 7 Grids @ 10 Segments)
wim 0:27f32a087e5a 154 */
wim 0:27f32a087e5a 155 PT6964(PinName mosi, PinName miso, PinName sclk, PinName cs, Mode mode=Grid7_Seg10);
wim 0:27f32a087e5a 156
wim 0:27f32a087e5a 157 /** Clear the screen and locate to 0
wim 0:27f32a087e5a 158 */
wim 0:27f32a087e5a 159 void cls();
wim 0:27f32a087e5a 160
wim 0:27f32a087e5a 161 /** Write databyte to PT6964
wim 0:27f32a087e5a 162 * @param int address display memory location to write byte
wim 0:27f32a087e5a 163 * @param char data byte written at given address
wim 0:27f32a087e5a 164 * @return none
wim 0:27f32a087e5a 165 */
wim 0:27f32a087e5a 166 void writeData(int address, char data);
wim 0:27f32a087e5a 167
wim 0:27f32a087e5a 168 /** Write Display datablock to PT6964
wim 0:27f32a087e5a 169 * @param DisplayData_t data Array of PT6964_DISPLAY_MEM (=14) bytes for displaydata (starting at address 0)
wim 0:27f32a087e5a 170 * @param length number bytes to write (valid range 0..PT6964_DISPLAY_MEM (=14), starting at address 0)
wim 0:27f32a087e5a 171 * @return none
wim 0:27f32a087e5a 172 */
wim 0:27f32a087e5a 173 void writeData(DisplayData_t data, int length = PT6964_DISPLAY_MEM);
wim 0:27f32a087e5a 174
wim 0:27f32a087e5a 175 /** Read keydata block from PT6964
wim 0:27f32a087e5a 176 * @param *keydata Ptr to Array of PT6964_KEY_MEM (=5) bytes for keydata
wim 0:27f32a087e5a 177 * @return bool keypress True when at least one key was pressed
wim 0:27f32a087e5a 178 *
wim 0:27f32a087e5a 179 * Note: Due to the hardware configuration the PT6964 key matrix scanner will detect multiple keys pressed at same time,
wim 0:27f32a087e5a 180 * but this may result in some spurious keys also being set in keypress data array.
wim 0:27f32a087e5a 181 * It may be best to ignore all keys in those situations. That option is implemented in this method depending on #define setting.
wim 0:27f32a087e5a 182 */
wim 0:27f32a087e5a 183 bool getKeys(KeyData_t *keydata);
wim 0:27f32a087e5a 184
wim 0:27f32a087e5a 185 /** Set Brightness
wim 0:27f32a087e5a 186 *
wim 0:27f32a087e5a 187 * @param char brightness (3 significant bits, valid range 0..7 (1/16 .. 14/14 dutycycle)
wim 0:27f32a087e5a 188 * @return none
wim 0:27f32a087e5a 189 */
wim 0:27f32a087e5a 190 void setBrightness(char brightness = PT6964_BRT_DEF);
wim 0:27f32a087e5a 191
wim 0:27f32a087e5a 192 /** Set the Display mode On/off
wim 0:27f32a087e5a 193 *
wim 0:27f32a087e5a 194 * @param bool display mode
wim 0:27f32a087e5a 195 */
wim 0:27f32a087e5a 196 void setDisplay(bool on);
wim 0:27f32a087e5a 197
wim 0:27f32a087e5a 198 private:
wim 0:27f32a087e5a 199 SPI _spi;
wim 0:27f32a087e5a 200 DigitalOut _cs;
wim 0:27f32a087e5a 201 Mode _mode;
wim 0:27f32a087e5a 202 char _display;
wim 0:27f32a087e5a 203 char _bright;
wim 0:27f32a087e5a 204
wim 0:27f32a087e5a 205 /** Init the SPI interface and the controller
wim 0:27f32a087e5a 206 * @param none
wim 0:27f32a087e5a 207 * @return none
wim 0:27f32a087e5a 208 */
wim 0:27f32a087e5a 209 void _init();
wim 0:27f32a087e5a 210
wim 0:27f32a087e5a 211 /** Helper to reverse all command or databits. The PT6964 expects LSB first, whereas SPI is MSB first
wim 0:27f32a087e5a 212 * @param char data
wim 0:27f32a087e5a 213 * @return bitreversed data
wim 0:27f32a087e5a 214 */
wim 0:27f32a087e5a 215 char _flip(char data);
wim 0:27f32a087e5a 216
wim 0:27f32a087e5a 217 /** Write command and parameter to PT6964
wim 0:27f32a087e5a 218 * @param int cmd Command byte
wim 0:27f32a087e5a 219 * &Param int data Parameters for command
wim 0:27f32a087e5a 220 * @return none
wim 0:27f32a087e5a 221 */
wim 0:27f32a087e5a 222 void _writeCmd(int cmd, int data);
wim 0:27f32a087e5a 223 };
wim 0:27f32a087e5a 224
wim 0:27f32a087e5a 225
wim 0:27f32a087e5a 226
wim 0:27f32a087e5a 227 // Derived class for PT6964 used in DVD-538A front display unit
wim 0:27f32a087e5a 228 //
wim 0:27f32a087e5a 229
wim 0:27f32a087e5a 230 #define DVD538A_NR_GRIDS 5
wim 0:27f32a087e5a 231 #define DVD538A_NR_DIGITS 4
wim 0:27f32a087e5a 232 #define DVD538A_NR_UDC 8
wim 0:27f32a087e5a 233
wim 0:27f32a087e5a 234 /** Constructor for class for driving Princeton PT6964 controller as used in DVD538A
wim 0:27f32a087e5a 235 *
wim 0:27f32a087e5a 236 * @brief Supports 4 Digits of 7 Segments, 1 Grid of 9 Icons. Also supports a scanned keyboard of 4 keys.
wim 0:27f32a087e5a 237 *
wim 0:27f32a087e5a 238 * @param PinName mosi, miso, sclk, cs SPI bus pins
wim 0:27f32a087e5a 239 */
wim 0:27f32a087e5a 240 class PT6964_DVD538A : public PT6964, public Stream {
wim 0:27f32a087e5a 241 public:
wim 0:27f32a087e5a 242
wim 0:27f32a087e5a 243 /** Enums for Icons */
wim 1:1adf993a3e34 244 // Grid encoded in 8 MSBs, Icon pattern encoded in 16 LSBs
wim 0:27f32a087e5a 245 enum Icon {
wim 1:1adf993a3e34 246 LD1 = (1<<24) | S7_LD1,
wim 1:1adf993a3e34 247 LD2 = (1<<24) | S7_LD2,
wim 1:1adf993a3e34 248 CD = (1<<24) | S7_CD,
wim 1:1adf993a3e34 249 DVD = (1<<24) | S7_DVD,
wim 1:1adf993a3e34 250 PSE = (1<<24) | S7_PSE,
wim 1:1adf993a3e34 251 PLY = (1<<24) | S7_PLY,
wim 1:1adf993a3e34 252 COL2 = (1<<24) | S7_COL2,
wim 1:1adf993a3e34 253 MP4 = (1<<24) | S7_MP4,
wim 1:1adf993a3e34 254 MP3 = (1<<24) | S7_MP3
wim 0:27f32a087e5a 255 };
wim 0:27f32a087e5a 256
wim 1:1adf993a3e34 257 typedef short UDCData_t[DVD538A_NR_UDC];
wim 0:27f32a087e5a 258
wim 0:27f32a087e5a 259 /** Constructor for class for driving Princeton PT6964 VFD controller as used in DVD538A
wim 0:27f32a087e5a 260 *
wim 0:27f32a087e5a 261 * @brief Supports 4 Digits of 7 Segments, 1 Grid of 9 Icons. Also supports a scanned keyboard of 4 keys.
wim 0:27f32a087e5a 262 *
wim 0:27f32a087e5a 263 * @param PinName mosi, miso, sclk, cs SPI bus pins
wim 0:27f32a087e5a 264 */
wim 0:27f32a087e5a 265 PT6964_DVD538A(PinName mosi, PinName miso, PinName sclk, PinName cs);
wim 0:27f32a087e5a 266
wim 0:27f32a087e5a 267 #if DOXYGEN_ONLY
wim 0:27f32a087e5a 268 /** Write a character to the Display
wim 0:27f32a087e5a 269 *
wim 0:27f32a087e5a 270 * @param c The character to write to the display
wim 0:27f32a087e5a 271 */
wim 0:27f32a087e5a 272 int putc(int c);
wim 0:27f32a087e5a 273
wim 0:27f32a087e5a 274 /** Write a formatted string to the Display
wim 0:27f32a087e5a 275 *
wim 0:27f32a087e5a 276 * @param format A printf-style format string, followed by the
wim 0:27f32a087e5a 277 * variables to use in formatting the string.
wim 0:27f32a087e5a 278 */
wim 0:27f32a087e5a 279 int printf(const char* format, ...);
wim 0:27f32a087e5a 280 #endif
wim 0:27f32a087e5a 281
wim 0:27f32a087e5a 282 /** Locate cursor to a screen column
wim 0:27f32a087e5a 283 *
wim 0:27f32a087e5a 284 * @param column The horizontal position from the left, indexed from 0
wim 0:27f32a087e5a 285 */
wim 0:27f32a087e5a 286 void locate(int column);
wim 0:27f32a087e5a 287
wim 0:27f32a087e5a 288 /** Clear the screen and locate to 0
wim 1:1adf993a3e34 289 * @param bool clrAll Clear Icons also (default = false)
wim 0:27f32a087e5a 290 */
wim 1:1adf993a3e34 291 void cls(bool clrAll = false);
wim 0:27f32a087e5a 292
wim 0:27f32a087e5a 293 /** Set Icon
wim 0:27f32a087e5a 294 *
wim 1:1adf993a3e34 295 * @param Icon icon Enums Icon has Grid position encoded in 8 MSBs, Icon pattern encoded in 16 LSBs
wim 0:27f32a087e5a 296 * @return none
wim 0:27f32a087e5a 297 */
wim 0:27f32a087e5a 298 void setIcon(Icon icon);
wim 0:27f32a087e5a 299
wim 0:27f32a087e5a 300 /** Clr Icon
wim 0:27f32a087e5a 301 *
wim 1:1adf993a3e34 302 * @param Icon icon Enums Icon has Grid position encoded in 8 MSBs, Icon pattern encoded in 16 LSBs
wim 0:27f32a087e5a 303 * @return none
wim 0:27f32a087e5a 304 */
wim 0:27f32a087e5a 305 void clrIcon(Icon icon);
wim 0:27f32a087e5a 306
wim 0:27f32a087e5a 307 /** Set User Defined Characters (UDC)
wim 0:27f32a087e5a 308 *
wim 0:27f32a087e5a 309 * @param unsigned char udc_idx The Index of the UDC (0..7)
wim 0:27f32a087e5a 310 * @param int udc_data The bitpattern for the UDC (16 bits)
wim 0:27f32a087e5a 311 */
wim 0:27f32a087e5a 312 void setUDC(unsigned char udc_idx, int udc_data);
wim 0:27f32a087e5a 313
wim 0:27f32a087e5a 314
wim 0:27f32a087e5a 315 /** Number of screen columns
wim 0:27f32a087e5a 316 *
wim 0:27f32a087e5a 317 * @param none
wim 0:27f32a087e5a 318 * @return columns
wim 0:27f32a087e5a 319 */
wim 0:27f32a087e5a 320 int columns();
wim 0:27f32a087e5a 321
wim 0:27f32a087e5a 322 /** Write Display datablock to PT6964
wim 0:27f32a087e5a 323 * @param DisplayData_t data Array of PT6964_DISPLAY_MEM (=14) bytes for displaydata (starting at address 0)
wim 0:27f32a087e5a 324 * @param length number bytes to write (valid range 0..(DVD538A_NR_GRIDS*2) (=14), starting at address 0)
wim 0:27f32a087e5a 325 * @return none
wim 0:27f32a087e5a 326 */
wim 0:27f32a087e5a 327 void writeData(DisplayData_t data, int length = (DVD538A_NR_GRIDS*2)) {
wim 0:27f32a087e5a 328 PT6964::writeData(data, length);
wim 0:27f32a087e5a 329 }
wim 0:27f32a087e5a 330
wim 0:27f32a087e5a 331 protected:
wim 0:27f32a087e5a 332 // Stream implementation functions
wim 0:27f32a087e5a 333 virtual int _putc(int value);
wim 0:27f32a087e5a 334 virtual int _getc();
wim 0:27f32a087e5a 335
wim 0:27f32a087e5a 336 private:
wim 0:27f32a087e5a 337 int _column;
wim 0:27f32a087e5a 338 int _columns;
wim 0:27f32a087e5a 339
wim 0:27f32a087e5a 340 DisplayData_t _displaybuffer;
wim 1:1adf993a3e34 341 UDCData_t _UDC_7S;
wim 0:27f32a087e5a 342 };
wim 0:27f32a087e5a 343
wim 0:27f32a087e5a 344
wim 0:27f32a087e5a 345 #endif