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:
Sat Nov 21 16:43:15 2015 +0000
Revision:
0:27f32a087e5a
Child:
1:1adf993a3e34
First version

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