E-Paper Device (EPD) based MiniNote module, powered by mbed on LPC1114FBD48. Shared in public domain with enclosure in 3D step format, hardware interface compatible with microBUS interface. Anyone can contribute on this project.
E-Badge MiniNote Project on mbed/NXP LPC1114 platform
- About E-Badge MiniNote Project
- E-Badge Firmware Design
- Enclosure ID in 3D step format
- Python utilities
- Demo applications
- New applications with cloud server
- make mbed looks Arduino compatible
- debug in Keil, shared with mbed
- make it bigger with more memory
- make it smaller with mini connector
- make it stronger with mikroBUS
- Make it pretty with line art
- Developement Status Update
SSD1606/ssd1606.cpp@4:5032c106eea1, 2014-06-11 (annotated)
- Committer:
- allankliu
- Date:
- Wed Jun 11 09:14:00 2014 +0000
- Revision:
- 4:5032c106eea1
- Parent:
- 3:1fa000d4da94
Tested on hardware.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
allankliu | 2:bb9f154ea2f4 | 1 | /* |
allankliu | 2:bb9f154ea2f4 | 2 | * Code ported from EDP-MSP430 and IAR-STM32-SK |
allankliu | 2:bb9f154ea2f4 | 3 | * Allan K Liu |
allankliu | 2:bb9f154ea2f4 | 4 | */ |
allankliu | 2:bb9f154ea2f4 | 5 | |
allankliu | 0:33994cfad0c2 | 6 | #include "mbed.h" |
allankliu | 0:33994cfad0c2 | 7 | #include "ssd1606.h" |
allankliu | 2:bb9f154ea2f4 | 8 | //#include "font.h" |
allankliu | 2:bb9f154ea2f4 | 9 | #include "rom_image.h" |
allankliu | 2:bb9f154ea2f4 | 10 | #include "rom_font.h" |
allankliu | 0:33994cfad0c2 | 11 | |
allankliu | 0:33994cfad0c2 | 12 | #include <stdarg.h> |
allankliu | 0:33994cfad0c2 | 13 | |
allankliu | 0:33994cfad0c2 | 14 | const unsigned char init_data[]={ |
allankliu | 0:33994cfad0c2 | 15 | 0x82,0x00,0x00,0x00,0xAA,0x00,0x00,0x00, |
allankliu | 0:33994cfad0c2 | 16 | 0xAA,0xAA,0x00,0x00,0xAA,0xAA,0xAA,0x00, |
allankliu | 0:33994cfad0c2 | 17 | 0x55,0xAA,0xAA,0x00,0x55,0x55,0x55,0x55, |
allankliu | 0:33994cfad0c2 | 18 | 0xAA,0xAA,0xAA,0xAA,0x55,0x55,0x55,0x55, |
allankliu | 0:33994cfad0c2 | 19 | 0xAA,0xAA,0xAA,0xAA,0x15,0x15,0x15,0x15, |
allankliu | 0:33994cfad0c2 | 20 | 0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01, |
allankliu | 0:33994cfad0c2 | 21 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
allankliu | 0:33994cfad0c2 | 22 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
allankliu | 0:33994cfad0c2 | 23 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
allankliu | 0:33994cfad0c2 | 24 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, |
allankliu | 0:33994cfad0c2 | 25 | 0x41,0x45,0xF1,0xFF,0x5F,0x55,0x01,0x00, |
allankliu | 0:33994cfad0c2 | 26 | 0x00,0x00,}; |
allankliu | 0:33994cfad0c2 | 27 | |
allankliu | 0:33994cfad0c2 | 28 | |
allankliu | 2:bb9f154ea2f4 | 29 | SSD1606::SSD1606(PinName cs, PinName rst, PinName dc, PinName busy, PinName data, PinName clk) |
allankliu | 2:bb9f154ea2f4 | 30 | : _cs(cs), |
allankliu | 2:bb9f154ea2f4 | 31 | _reset(rst), |
allankliu | 2:bb9f154ea2f4 | 32 | _dc(dc), |
allankliu | 2:bb9f154ea2f4 | 33 | _busy(busy), |
allankliu | 2:bb9f154ea2f4 | 34 | _data(data), |
allankliu | 2:bb9f154ea2f4 | 35 | _clk(clk) |
allankliu | 0:33994cfad0c2 | 36 | { |
allankliu | 2:bb9f154ea2f4 | 37 | _cursor_x = 0; |
allankliu | 2:bb9f154ea2f4 | 38 | _cursor_y = 0; |
allankliu | 2:bb9f154ea2f4 | 39 | _cs = DigitalOut(cs); |
allankliu | 2:bb9f154ea2f4 | 40 | _reset = DigitalOut(rst); |
allankliu | 2:bb9f154ea2f4 | 41 | _dc = DigitalOut(dc); |
allankliu | 2:bb9f154ea2f4 | 42 | _busy = DigitalIn(busy); |
allankliu | 2:bb9f154ea2f4 | 43 | _data = DigitalOut(data); |
allankliu | 2:bb9f154ea2f4 | 44 | _clk = DigitalOut(clk); |
allankliu | 0:33994cfad0c2 | 45 | } |
allankliu | 0:33994cfad0c2 | 46 | |
allankliu | 0:33994cfad0c2 | 47 | void SSD1606::reset() |
allankliu | 0:33994cfad0c2 | 48 | { |
allankliu | 0:33994cfad0c2 | 49 | _reset = 1; |
allankliu | 2:bb9f154ea2f4 | 50 | wait_ms(1); |
allankliu | 0:33994cfad0c2 | 51 | _reset = 0; |
allankliu | 3:1fa000d4da94 | 52 | wait_ms(1); |
allankliu | 0:33994cfad0c2 | 53 | _reset = 1; |
allankliu | 3:1fa000d4da94 | 54 | wait_ms(1); |
allankliu | 2:bb9f154ea2f4 | 55 | } |
allankliu | 2:bb9f154ea2f4 | 56 | |
allankliu | 2:bb9f154ea2f4 | 57 | void SSD1606::read_busy() |
allankliu | 2:bb9f154ea2f4 | 58 | { |
allankliu | 3:1fa000d4da94 | 59 | while(1) |
allankliu | 3:1fa000d4da94 | 60 | { |
allankliu | 3:1fa000d4da94 | 61 | asm("nop"); |
allankliu | 3:1fa000d4da94 | 62 | if(_busy==0) |
allankliu | 3:1fa000d4da94 | 63 | break; |
allankliu | 2:bb9f154ea2f4 | 64 | } |
allankliu | 0:33994cfad0c2 | 65 | } |
allankliu | 0:33994cfad0c2 | 66 | |
allankliu | 0:33994cfad0c2 | 67 | void SSD1606::initialize() |
allankliu | 0:33994cfad0c2 | 68 | { |
allankliu | 0:33994cfad0c2 | 69 | _send_command(0x10); |
allankliu | 0:33994cfad0c2 | 70 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 71 | #ifdef MODE3 |
allankliu | 0:33994cfad0c2 | 72 | _send_command(0x11); |
allankliu | 0:33994cfad0c2 | 73 | _send_data(0x03); |
allankliu | 0:33994cfad0c2 | 74 | _send_command(0x44); |
allankliu | 0:33994cfad0c2 | 75 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 76 | _send_data(0x11); |
allankliu | 0:33994cfad0c2 | 77 | _send_command(0x45); |
allankliu | 0:33994cfad0c2 | 78 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 79 | _send_data(0xAB); |
allankliu | 0:33994cfad0c2 | 80 | _send_command(0x4E); |
allankliu | 0:33994cfad0c2 | 81 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 82 | _send_command(0x4F); |
allankliu | 0:33994cfad0c2 | 83 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 84 | #endif |
allankliu | 0:33994cfad0c2 | 85 | #ifdef MODE2 |
allankliu | 0:33994cfad0c2 | 86 | _send_command(0x11); |
allankliu | 0:33994cfad0c2 | 87 | _send_data(0x02); |
allankliu | 0:33994cfad0c2 | 88 | _send_command(0x44); |
allankliu | 0:33994cfad0c2 | 89 | _send_data(0x11); |
allankliu | 0:33994cfad0c2 | 90 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 91 | _send_command(0x45); |
allankliu | 0:33994cfad0c2 | 92 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 93 | _send_data(0xAB); |
allankliu | 0:33994cfad0c2 | 94 | _send_command(0x4E); |
allankliu | 0:33994cfad0c2 | 95 | _send_data(0x11); |
allankliu | 0:33994cfad0c2 | 96 | _send_command(0x4F); |
allankliu | 0:33994cfad0c2 | 97 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 98 | #endif |
allankliu | 0:33994cfad0c2 | 99 | #ifdef MODE1 |
allankliu | 0:33994cfad0c2 | 100 | _send_command(0x11); |
allankliu | 0:33994cfad0c2 | 101 | _send_data(0x01); |
allankliu | 0:33994cfad0c2 | 102 | _send_command(0x44); |
allankliu | 0:33994cfad0c2 | 103 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 104 | _send_data(0x11); |
allankliu | 0:33994cfad0c2 | 105 | _send_command(0x45); |
allankliu | 0:33994cfad0c2 | 106 | _send_data(0xAB); |
allankliu | 0:33994cfad0c2 | 107 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 108 | _send_command(0x4E); |
allankliu | 0:33994cfad0c2 | 109 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 110 | _send_command(0x4F); |
allankliu | 0:33994cfad0c2 | 111 | _send_data(0xAB); |
allankliu | 0:33994cfad0c2 | 112 | #endif |
allankliu | 0:33994cfad0c2 | 113 | #ifdef MODE0 |
allankliu | 0:33994cfad0c2 | 114 | _send_command(0x11); |
allankliu | 0:33994cfad0c2 | 115 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 116 | _send_command(0x44); |
allankliu | 0:33994cfad0c2 | 117 | _send_data(0x11); |
allankliu | 0:33994cfad0c2 | 118 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 119 | _send_command(0x45); |
allankliu | 0:33994cfad0c2 | 120 | _send_data(0xAB); |
allankliu | 0:33994cfad0c2 | 121 | _send_data(0x00); |
allankliu | 0:33994cfad0c2 | 122 | _send_command(0x4E); |
allankliu | 0:33994cfad0c2 | 123 | _send_data(0x11); |
allankliu | 0:33994cfad0c2 | 124 | _send_command(0x4F); |
allankliu | 0:33994cfad0c2 | 125 | _send_data(0xAB); |
allankliu | 0:33994cfad0c2 | 126 | #endif |
allankliu | 0:33994cfad0c2 | 127 | _send_command(0xF0); |
allankliu | 0:33994cfad0c2 | 128 | _send_data(0x1F); |
allankliu | 0:33994cfad0c2 | 129 | _send_command(0x21); |
allankliu | 0:33994cfad0c2 | 130 | _send_data(0x03); |
allankliu | 0:33994cfad0c2 | 131 | _send_command(0x2C); |
allankliu | 0:33994cfad0c2 | 132 | _send_data(0xA0); |
allankliu | 0:33994cfad0c2 | 133 | _send_command(0x3C); |
allankliu | 0:33994cfad0c2 | 134 | _send_data(0x63); |
allankliu | 0:33994cfad0c2 | 135 | _send_command(0x22); |
allankliu | 0:33994cfad0c2 | 136 | _send_data(0xC4); |
allankliu | 0:33994cfad0c2 | 137 | |
allankliu | 0:33994cfad0c2 | 138 | set_lut(); |
allankliu | 0:33994cfad0c2 | 139 | } |
allankliu | 0:33994cfad0c2 | 140 | |
allankliu | 2:bb9f154ea2f4 | 141 | |
allankliu | 0:33994cfad0c2 | 142 | |
allankliu | 0:33994cfad0c2 | 143 | void SSD1606::rom_image(const unsigned char *bitmap) |
allankliu | 0:33994cfad0c2 | 144 | { |
allankliu | 2:bb9f154ea2f4 | 145 | int i=0; |
allankliu | 0:33994cfad0c2 | 146 | _send_command(0x24); |
allankliu | 0:33994cfad0c2 | 147 | |
allankliu | 0:33994cfad0c2 | 148 | for (i=0; i <3096; i++) |
allankliu | 0:33994cfad0c2 | 149 | _send_data(bitmap[i]); |
allankliu | 0:33994cfad0c2 | 150 | |
allankliu | 0:33994cfad0c2 | 151 | _send_command(0x20); |
allankliu | 2:bb9f154ea2f4 | 152 | wait_ms(1); |
allankliu | 2:bb9f154ea2f4 | 153 | read_busy(); |
allankliu | 0:33994cfad0c2 | 154 | } |
allankliu | 0:33994cfad0c2 | 155 | |
allankliu | 2:bb9f154ea2f4 | 156 | void SSD1606::update(void) |
allankliu | 0:33994cfad0c2 | 157 | { |
allankliu | 2:bb9f154ea2f4 | 158 | int i = 0; |
allankliu | 2:bb9f154ea2f4 | 159 | _send_command(0x24); |
allankliu | 2:bb9f154ea2f4 | 160 | |
allankliu | 2:bb9f154ea2f4 | 161 | for (i=0; i<3096; i++) |
allankliu | 2:bb9f154ea2f4 | 162 | //_send_data(_screen[i]); |
allankliu | 2:bb9f154ea2f4 | 163 | //_send_data(buf[i]); |
allankliu | 2:bb9f154ea2f4 | 164 | |
allankliu | 2:bb9f154ea2f4 | 165 | wait_ms(1); |
allankliu | 2:bb9f154ea2f4 | 166 | read_busy(); |
allankliu | 0:33994cfad0c2 | 167 | } |
allankliu | 0:33994cfad0c2 | 168 | |
allankliu | 2:bb9f154ea2f4 | 169 | /* Hardware Switch off Power Supply for EPD mode (MOSFET) |
allankliu | 2:bb9f154ea2f4 | 170 | */ |
allankliu | 0:33994cfad0c2 | 171 | void SSD1606::off() |
allankliu | 0:33994cfad0c2 | 172 | { |
allankliu | 0:33994cfad0c2 | 173 | } |
allankliu | 0:33994cfad0c2 | 174 | |
allankliu | 2:bb9f154ea2f4 | 175 | void SSD1606::deepsleep() |
allankliu | 2:bb9f154ea2f4 | 176 | { |
allankliu | 2:bb9f154ea2f4 | 177 | } |
allankliu | 2:bb9f154ea2f4 | 178 | |
allankliu | 0:33994cfad0c2 | 179 | void SSD1606::sleep() |
allankliu | 0:33994cfad0c2 | 180 | { |
allankliu | 0:33994cfad0c2 | 181 | _send_command(0x10); |
allankliu | 0:33994cfad0c2 | 182 | _send_data(0x01); |
allankliu | 0:33994cfad0c2 | 183 | } |
allankliu | 0:33994cfad0c2 | 184 | |
allankliu | 2:bb9f154ea2f4 | 185 | void SSD1606::wake() |
allankliu | 2:bb9f154ea2f4 | 186 | { |
allankliu | 2:bb9f154ea2f4 | 187 | _send_command(0x10); |
allankliu | 2:bb9f154ea2f4 | 188 | _send_data(0x00); |
allankliu | 2:bb9f154ea2f4 | 189 | } |
allankliu | 2:bb9f154ea2f4 | 190 | |
allankliu | 0:33994cfad0c2 | 191 | void SSD1606::set_command_between_images() |
allankliu | 0:33994cfad0c2 | 192 | { |
allankliu | 0:33994cfad0c2 | 193 | _send_command(0x22); |
allankliu | 0:33994cfad0c2 | 194 | _send_data(0xC7); |
allankliu | 0:33994cfad0c2 | 195 | _send_command(0x21); |
allankliu | 0:33994cfad0c2 | 196 | _send_data(0x03); |
allankliu | 0:33994cfad0c2 | 197 | } |
allankliu | 0:33994cfad0c2 | 198 | |
allankliu | 0:33994cfad0c2 | 199 | void SSD1606::clear() |
allankliu | 0:33994cfad0c2 | 200 | { |
allankliu | 3:1fa000d4da94 | 201 | for (int i=0; i<3096; i++) |
allankliu | 2:bb9f154ea2f4 | 202 | _send_data(0xFF); |
allankliu | 0:33994cfad0c2 | 203 | _cursor_x = 0; |
allankliu | 0:33994cfad0c2 | 204 | _cursor_y = 0; |
allankliu | 0:33994cfad0c2 | 205 | } |
allankliu | 0:33994cfad0c2 | 206 | |
allankliu | 2:bb9f154ea2f4 | 207 | void SSD1606::_vspi_write(unsigned char value) |
allankliu | 2:bb9f154ea2f4 | 208 | { |
allankliu | 3:1fa000d4da94 | 209 | unsigned char tmp; |
allankliu | 3:1fa000d4da94 | 210 | tmp = value; |
allankliu | 3:1fa000d4da94 | 211 | |
allankliu | 2:bb9f154ea2f4 | 212 | for (int i=0; i<8; i++) |
allankliu | 2:bb9f154ea2f4 | 213 | { |
allankliu | 3:1fa000d4da94 | 214 | if(tmp & 0x80) |
allankliu | 2:bb9f154ea2f4 | 215 | { |
allankliu | 2:bb9f154ea2f4 | 216 | _data = 1; |
allankliu | 2:bb9f154ea2f4 | 217 | }else{ |
allankliu | 2:bb9f154ea2f4 | 218 | _data = 0; |
allankliu | 2:bb9f154ea2f4 | 219 | } |
allankliu | 2:bb9f154ea2f4 | 220 | _clk = 1; |
allankliu | 2:bb9f154ea2f4 | 221 | wait_us(SPI_BUS_DELAY); |
allankliu | 2:bb9f154ea2f4 | 222 | _clk = 0; |
allankliu | 3:1fa000d4da94 | 223 | tmp = tmp<<1; |
allankliu | 2:bb9f154ea2f4 | 224 | } |
allankliu | 2:bb9f154ea2f4 | 225 | } |
allankliu | 2:bb9f154ea2f4 | 226 | |
allankliu | 0:33994cfad0c2 | 227 | void SSD1606::_send_command(unsigned char code) |
allankliu | 0:33994cfad0c2 | 228 | { |
allankliu | 2:bb9f154ea2f4 | 229 | _cs = 1; wait_us(SPI_BUS_DELAY); |
allankliu | 2:bb9f154ea2f4 | 230 | _cs = 0; wait_us(SPI_BUS_DELAY); // Maybe _cs set low before _dc set low? |
allankliu | 2:bb9f154ea2f4 | 231 | _clk = 0; wait_us(SPI_BUS_DELAY); |
allankliu | 2:bb9f154ea2f4 | 232 | _dc = 0; wait_us(SPI_BUS_DELAY); |
allankliu | 2:bb9f154ea2f4 | 233 | |
allankliu | 2:bb9f154ea2f4 | 234 | //_spi.write(code); |
allankliu | 2:bb9f154ea2f4 | 235 | _vspi_write(code); |
allankliu | 2:bb9f154ea2f4 | 236 | wait_us(SPI_BUS_DELAY); |
allankliu | 2:bb9f154ea2f4 | 237 | _cs = 1; wait_us(SPI_BUS_DELAY); |
allankliu | 0:33994cfad0c2 | 238 | } |
allankliu | 0:33994cfad0c2 | 239 | |
allankliu | 0:33994cfad0c2 | 240 | void SSD1606::_send_data(unsigned char value) |
allankliu | 0:33994cfad0c2 | 241 | { |
allankliu | 2:bb9f154ea2f4 | 242 | _cs = 1; wait_us(SPI_BUS_DELAY); |
allankliu | 2:bb9f154ea2f4 | 243 | _cs = 0; wait_us(SPI_BUS_DELAY); |
allankliu | 2:bb9f154ea2f4 | 244 | _clk = 0; wait_us(SPI_BUS_DELAY); |
allankliu | 2:bb9f154ea2f4 | 245 | _dc = 1; wait_us(SPI_BUS_DELAY); // Maybe _cs set low before _dc set high? |
allankliu | 2:bb9f154ea2f4 | 246 | //_spi.write(value); |
allankliu | 2:bb9f154ea2f4 | 247 | _vspi_write(value); |
allankliu | 2:bb9f154ea2f4 | 248 | wait_us(SPI_BUS_DELAY); |
allankliu | 2:bb9f154ea2f4 | 249 | _cs = 1; wait_us(SPI_BUS_DELAY); |
allankliu | 0:33994cfad0c2 | 250 | } |
allankliu | 0:33994cfad0c2 | 251 | |
allankliu | 0:33994cfad0c2 | 252 | void SSD1606::set_lut(void) |
allankliu | 0:33994cfad0c2 | 253 | { |
allankliu | 0:33994cfad0c2 | 254 | unsigned char i; |
allankliu | 0:33994cfad0c2 | 255 | _send_command(0x32); |
allankliu | 0:33994cfad0c2 | 256 | for(i=0; i<90; i++) |
allankliu | 0:33994cfad0c2 | 257 | { |
allankliu | 0:33994cfad0c2 | 258 | _send_data(init_data[i]); |
allankliu | 0:33994cfad0c2 | 259 | } |
allankliu | 0:33994cfad0c2 | 260 | } |
allankliu | 2:bb9f154ea2f4 | 261 | |
allankliu | 2:bb9f154ea2f4 | 262 | void SSD1606::_draw_pattern(unsigned char value, unsigned int pix) |
allankliu | 2:bb9f154ea2f4 | 263 | { |
allankliu | 2:bb9f154ea2f4 | 264 | int i = 0; |
allankliu | 2:bb9f154ea2f4 | 265 | unsigned char x, y; |
allankliu | 3:1fa000d4da94 | 266 | for (x=0; x<SSD1606_WIDTH; x++) |
allankliu | 2:bb9f154ea2f4 | 267 | { |
allankliu | 3:1fa000d4da94 | 268 | for (y=0; y<COLBUF_SIZE; y++) |
allankliu | 2:bb9f154ea2f4 | 269 | { |
allankliu | 2:bb9f154ea2f4 | 270 | i++; |
allankliu | 2:bb9f154ea2f4 | 271 | if (i<pix) |
allankliu | 2:bb9f154ea2f4 | 272 | _send_data(value); |
allankliu | 2:bb9f154ea2f4 | 273 | else |
allankliu | 2:bb9f154ea2f4 | 274 | _send_data(0xFF); |
allankliu | 2:bb9f154ea2f4 | 275 | } |
allankliu | 2:bb9f154ea2f4 | 276 | } |
allankliu | 2:bb9f154ea2f4 | 277 | } |
allankliu | 2:bb9f154ea2f4 | 278 | |
allankliu | 2:bb9f154ea2f4 | 279 | void SSD1606::test_image(unsigned char idx) |
allankliu | 2:bb9f154ea2f4 | 280 | { |
allankliu | 2:bb9f154ea2f4 | 281 | switch(idx){ |
allankliu | 2:bb9f154ea2f4 | 282 | case TEST_GREY1: |
allankliu | 2:bb9f154ea2f4 | 283 | break; |
allankliu | 2:bb9f154ea2f4 | 284 | case TEST_GREY2: |
allankliu | 2:bb9f154ea2f4 | 285 | break; |
allankliu | 2:bb9f154ea2f4 | 286 | case TEST_BLK: |
allankliu | 2:bb9f154ea2f4 | 287 | break; |
allankliu | 2:bb9f154ea2f4 | 288 | case TEST_WHT: |
allankliu | 2:bb9f154ea2f4 | 289 | clear(); |
allankliu | 2:bb9f154ea2f4 | 290 | break; |
allankliu | 2:bb9f154ea2f4 | 291 | case TEST_HALF: |
allankliu | 2:bb9f154ea2f4 | 292 | break; |
allankliu | 2:bb9f154ea2f4 | 293 | case TEST_STRIP1: |
allankliu | 2:bb9f154ea2f4 | 294 | break; |
allankliu | 2:bb9f154ea2f4 | 295 | case TEST_STRIP2: |
allankliu | 2:bb9f154ea2f4 | 296 | break; |
allankliu | 2:bb9f154ea2f4 | 297 | default: |
allankliu | 2:bb9f154ea2f4 | 298 | break; |
allankliu | 2:bb9f154ea2f4 | 299 | } |
allankliu | 2:bb9f154ea2f4 | 300 | } |
allankliu | 2:bb9f154ea2f4 | 301 | |
allankliu | 2:bb9f154ea2f4 | 302 | |
allankliu | 2:bb9f154ea2f4 | 303 | void SSD1606::set_font(unsigned char *font, unsigned char width) |
allankliu | 2:bb9f154ea2f4 | 304 | { |
allankliu | 2:bb9f154ea2f4 | 305 | } |
allankliu | 3:1fa000d4da94 | 306 | |
allankliu | 3:1fa000d4da94 | 307 | void SSD1606::_send_data_1bpp(unsigned char value) |
allankliu | 3:1fa000d4da94 | 308 | { |
allankliu | 3:1fa000d4da94 | 309 | unsigned char temp; |
allankliu | 3:1fa000d4da94 | 310 | temp = EPD_2bpp_LUT[value & 0x0F]; |
allankliu | 3:1fa000d4da94 | 311 | _send_data(temp); |
allankliu | 3:1fa000d4da94 | 312 | temp = EPD_2bpp_LUT[value>>4 & 0x0F]; |
allankliu | 3:1fa000d4da94 | 313 | _send_data(temp); |
allankliu | 3:1fa000d4da94 | 314 | } |