Added HangmanGame class, but does not work yet

Dependencies:   SDFileSystem app epson mbed msp430 pl tests

Committer:
markpsymonds
Date:
Mon Dec 04 20:15:18 2017 +0000
Revision:
1:a5ec6f9dcf0d
Parent:
0:fa7450a43b99
Fixed most compile issues in hangman.cpp/.h.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
group-FlexBook 0:fa7450a43b99 1 //
group-FlexBook 0:fa7450a43b99 2 // Filename: eink.cpp
group-FlexBook 0:fa7450a43b99 3 //
group-FlexBook 0:fa7450a43b99 4 // Flexbook eInk display driver.
group-FlexBook 0:fa7450a43b99 5 //
group-FlexBook 0:fa7450a43b99 6
group-FlexBook 0:fa7450a43b99 7 #include "eink.h"
group-FlexBook 0:fa7450a43b99 8
group-FlexBook 0:fa7450a43b99 9 #include "mbed.h"
group-FlexBook 0:fa7450a43b99 10
group-FlexBook 0:fa7450a43b99 11 #include "ChaN/ff.h"
group-FlexBook 0:fa7450a43b99 12
group-FlexBook 0:fa7450a43b99 13 #include "log.h"
group-FlexBook 0:fa7450a43b99 14 #include "page.h"
group-FlexBook 0:fa7450a43b99 15
group-FlexBook 0:fa7450a43b99 16 #include "pmic-tps65185.h"
group-FlexBook 0:fa7450a43b99 17 #include "vcom.h"
group-FlexBook 0:fa7450a43b99 18
group-FlexBook 0:fa7450a43b99 19 #include <sstream>
group-FlexBook 0:fa7450a43b99 20
group-FlexBook 0:fa7450a43b99 21 const int MAX_INIT_FAILS = 3;
group-FlexBook 0:fa7450a43b99 22
group-FlexBook 0:fa7450a43b99 23 SPI *spi = 0;
group-FlexBook 0:fa7450a43b99 24
group-FlexBook 0:fa7450a43b99 25 #define I2C_PMIC_ADDR_TPS65185 0x68
group-FlexBook 0:fa7450a43b99 26
group-FlexBook 0:fa7450a43b99 27 struct tps65185_info pmic_info;
group-FlexBook 0:fa7450a43b99 28
group-FlexBook 0:fa7450a43b99 29 const char *g_wflib_fatfs_path = "/waveform.dat";
group-FlexBook 0:fa7450a43b99 30
group-FlexBook 0:fa7450a43b99 31 extern "C"
group-FlexBook 0:fa7450a43b99 32 {
group-FlexBook 0:fa7450a43b99 33 // EPSON drivers.
group-FlexBook 0:fa7450a43b99 34 #include "epson/epson-epdc.h"
group-FlexBook 0:fa7450a43b99 35 #include "epson/epson-s1d135xx.h"
group-FlexBook 0:fa7450a43b99 36
group-FlexBook 0:fa7450a43b99 37 // Plastic Logic drivers.
group-FlexBook 0:fa7450a43b99 38 #include "pl/epdc.h"
group-FlexBook 0:fa7450a43b99 39 #include "pl/dispinfo.h"
group-FlexBook 0:fa7450a43b99 40 #include "pl/platform.h"
group-FlexBook 0:fa7450a43b99 41 #include "pl/types.h"
group-FlexBook 0:fa7450a43b99 42
group-FlexBook 0:fa7450a43b99 43 #include "wflib.h"
group-FlexBook 0:fa7450a43b99 44
group-FlexBook 0:fa7450a43b99 45 void mdelay(uint16_t ms)
group-FlexBook 0:fa7450a43b99 46 {
group-FlexBook 0:fa7450a43b99 47 wait_ms(ms);
group-FlexBook 0:fa7450a43b99 48 }
group-FlexBook 0:fa7450a43b99 49
group-FlexBook 0:fa7450a43b99 50 void msleep(uint16_t ms)
group-FlexBook 0:fa7450a43b99 51 {
group-FlexBook 0:fa7450a43b99 52 mdelay(ms);
group-FlexBook 0:fa7450a43b99 53 }
group-FlexBook 0:fa7450a43b99 54
group-FlexBook 0:fa7450a43b99 55 #define EPSON_RESET p16
group-FlexBook 0:fa7450a43b99 56 #define EPSON_CS_0 p14
group-FlexBook 0:fa7450a43b99 57 #define EPSON_HIRQ p15
group-FlexBook 0:fa7450a43b99 58 #define EPSON_HRDY ~0U
group-FlexBook 0:fa7450a43b99 59 #define EPSON_HDC p24
group-FlexBook 0:fa7450a43b99 60 #define EPSON_CLK_EN 1002
group-FlexBook 0:fa7450a43b99 61 #define EPSON_VCC_EN 1003
group-FlexBook 0:fa7450a43b99 62
group-FlexBook 0:fa7450a43b99 63 enum
group-FlexBook 0:fa7450a43b99 64 {
group-FlexBook 0:fa7450a43b99 65 HVSW_CTRL = p17, /* VCOM switch enable */
group-FlexBook 0:fa7450a43b99 66 PMIC_EN = p18, /* HV-PMIC enable */
group-FlexBook 0:fa7450a43b99 67 PMIC_POK = p23, /* HV-PMIC power OK */
group-FlexBook 0:fa7450a43b99 68 PMIC_FLT = 1006 /* HV-PMIC fault condition */
group-FlexBook 0:fa7450a43b99 69 };
group-FlexBook 0:fa7450a43b99 70
group-FlexBook 0:fa7450a43b99 71 static const struct s1d135xx_data g_s1d135xx_data =
group-FlexBook 0:fa7450a43b99 72 {
group-FlexBook 0:fa7450a43b99 73 EPSON_RESET,
group-FlexBook 0:fa7450a43b99 74 EPSON_CS_0,
group-FlexBook 0:fa7450a43b99 75 EPSON_HIRQ,
group-FlexBook 0:fa7450a43b99 76 EPSON_HRDY,
group-FlexBook 0:fa7450a43b99 77 EPSON_HDC,
group-FlexBook 0:fa7450a43b99 78 EPSON_CLK_EN,
group-FlexBook 0:fa7450a43b99 79 EPSON_VCC_EN
group-FlexBook 0:fa7450a43b99 80 };
group-FlexBook 0:fa7450a43b99 81
group-FlexBook 0:fa7450a43b99 82 void printgpio(unsigned int gpio)
group-FlexBook 0:fa7450a43b99 83 {
group-FlexBook 0:fa7450a43b99 84 switch(gpio)
group-FlexBook 0:fa7450a43b99 85 {
group-FlexBook 0:fa7450a43b99 86 case EPSON_RESET:
group-FlexBook 0:fa7450a43b99 87 printf("EPSON_RESET");
group-FlexBook 0:fa7450a43b99 88 break;
group-FlexBook 0:fa7450a43b99 89
group-FlexBook 0:fa7450a43b99 90 case EPSON_CS_0:
group-FlexBook 0:fa7450a43b99 91 printf("EPSON_CS_0");
group-FlexBook 0:fa7450a43b99 92 break;
group-FlexBook 0:fa7450a43b99 93
group-FlexBook 0:fa7450a43b99 94 case EPSON_HIRQ:
group-FlexBook 0:fa7450a43b99 95 printf("EPSON_HIRQ");
group-FlexBook 0:fa7450a43b99 96 break;
group-FlexBook 0:fa7450a43b99 97
group-FlexBook 0:fa7450a43b99 98 case EPSON_HRDY:
group-FlexBook 0:fa7450a43b99 99 printf("EPSON_HRDY");
group-FlexBook 0:fa7450a43b99 100 break;
group-FlexBook 0:fa7450a43b99 101
group-FlexBook 0:fa7450a43b99 102 case EPSON_HDC:
group-FlexBook 0:fa7450a43b99 103 printf("EPSON_HDC");
group-FlexBook 0:fa7450a43b99 104 break;
group-FlexBook 0:fa7450a43b99 105
group-FlexBook 0:fa7450a43b99 106 case EPSON_CLK_EN:
group-FlexBook 0:fa7450a43b99 107 printf("EPSON_CLK_EN");
group-FlexBook 0:fa7450a43b99 108 break;
group-FlexBook 0:fa7450a43b99 109
group-FlexBook 0:fa7450a43b99 110 case EPSON_VCC_EN:
group-FlexBook 0:fa7450a43b99 111 printf("EPSON_VCC_EN");
group-FlexBook 0:fa7450a43b99 112 break;
group-FlexBook 0:fa7450a43b99 113
group-FlexBook 0:fa7450a43b99 114 case HVSW_CTRL:
group-FlexBook 0:fa7450a43b99 115 printf("HVSW_CTRL");
group-FlexBook 0:fa7450a43b99 116 break;
group-FlexBook 0:fa7450a43b99 117
group-FlexBook 0:fa7450a43b99 118 case PMIC_EN:
group-FlexBook 0:fa7450a43b99 119 printf("PMIC_EN");
group-FlexBook 0:fa7450a43b99 120 break;
group-FlexBook 0:fa7450a43b99 121
group-FlexBook 0:fa7450a43b99 122 case PMIC_POK:
group-FlexBook 0:fa7450a43b99 123 printf("PMIC_POK");
group-FlexBook 0:fa7450a43b99 124 break;
group-FlexBook 0:fa7450a43b99 125
group-FlexBook 0:fa7450a43b99 126 default:
group-FlexBook 0:fa7450a43b99 127 printf("Unknown GPIO: %u", gpio);
group-FlexBook 0:fa7450a43b99 128 break;
group-FlexBook 0:fa7450a43b99 129 }
group-FlexBook 0:fa7450a43b99 130 }
group-FlexBook 0:fa7450a43b99 131
group-FlexBook 0:fa7450a43b99 132 //#define LOG_GPIO
group-FlexBook 0:fa7450a43b99 133
group-FlexBook 0:fa7450a43b99 134 extern int msp430_gpio_get(unsigned gpio)
group-FlexBook 0:fa7450a43b99 135 {
group-FlexBook 0:fa7450a43b99 136 #ifdef LOG_GPIO
group-FlexBook 0:fa7450a43b99 137 printf("msp430_gpio_get(");
group-FlexBook 0:fa7450a43b99 138 printgpio(gpio);
group-FlexBook 0:fa7450a43b99 139 printf(")\n");
group-FlexBook 0:fa7450a43b99 140 #endif // LOG_GPIO
group-FlexBook 0:fa7450a43b99 141
group-FlexBook 0:fa7450a43b99 142 int value = 0;
group-FlexBook 0:fa7450a43b99 143 if(gpio != EPSON_CLK_EN && gpio != EPSON_VCC_EN)
group-FlexBook 0:fa7450a43b99 144 {
group-FlexBook 0:fa7450a43b99 145 DigitalIn gpiopin((PinName) gpio);
group-FlexBook 0:fa7450a43b99 146 value = gpiopin;
group-FlexBook 0:fa7450a43b99 147 } else {
group-FlexBook 0:fa7450a43b99 148 #ifdef LOG_GPIO
group-FlexBook 0:fa7450a43b99 149 printf("unused GPIO, ignored\n");
group-FlexBook 0:fa7450a43b99 150 #endif // LOG_GPIO
group-FlexBook 0:fa7450a43b99 151 }
group-FlexBook 0:fa7450a43b99 152
group-FlexBook 0:fa7450a43b99 153 return value;
group-FlexBook 0:fa7450a43b99 154 }
group-FlexBook 0:fa7450a43b99 155
group-FlexBook 0:fa7450a43b99 156 extern void msp430_gpio_set(unsigned gpio, int value)
group-FlexBook 0:fa7450a43b99 157 {
group-FlexBook 0:fa7450a43b99 158 #ifdef LOG_GPIO
group-FlexBook 0:fa7450a43b99 159 printf("msp430_gpio_set(");
group-FlexBook 0:fa7450a43b99 160 printgpio(gpio);
group-FlexBook 0:fa7450a43b99 161 printf(", %d)\n", value);
group-FlexBook 0:fa7450a43b99 162 #endif // LOG_GPIO
group-FlexBook 0:fa7450a43b99 163
group-FlexBook 0:fa7450a43b99 164 if(gpio != EPSON_CLK_EN && gpio != EPSON_VCC_EN)
group-FlexBook 0:fa7450a43b99 165 {
group-FlexBook 0:fa7450a43b99 166 DigitalOut gpiopin((PinName) gpio);
group-FlexBook 0:fa7450a43b99 167 gpiopin = value;
group-FlexBook 0:fa7450a43b99 168 } else {
group-FlexBook 0:fa7450a43b99 169 #ifdef LOG_GPIO
group-FlexBook 0:fa7450a43b99 170 printf("unused GPIO, ignored\n");
group-FlexBook 0:fa7450a43b99 171 #endif // LOG_GPIO
group-FlexBook 0:fa7450a43b99 172 }
group-FlexBook 0:fa7450a43b99 173 }
group-FlexBook 0:fa7450a43b99 174
group-FlexBook 0:fa7450a43b99 175 int _swap_bytes(int bytes)
group-FlexBook 0:fa7450a43b99 176 {
group-FlexBook 0:fa7450a43b99 177 uint16_t ubytes = bytes;
group-FlexBook 0:fa7450a43b99 178 ubytes = (ubytes << 8) + (ubytes >> 8);
group-FlexBook 0:fa7450a43b99 179 return ubytes;
group-FlexBook 0:fa7450a43b99 180 }
group-FlexBook 0:fa7450a43b99 181
group-FlexBook 0:fa7450a43b99 182 int parser_read_file_line(FIL *f, char *buffer, int max_length)
group-FlexBook 0:fa7450a43b99 183 {
group-FlexBook 0:fa7450a43b99 184 Log("parser_read_file_line not implemented, returning FR_OK");
group-FlexBook 0:fa7450a43b99 185 return 0;
group-FlexBook 0:fa7450a43b99 186 }
group-FlexBook 0:fa7450a43b99 187
group-FlexBook 0:fa7450a43b99 188 int parser_read_word(const char *str, const char *sep, unsigned int *out)
group-FlexBook 0:fa7450a43b99 189 {
group-FlexBook 0:fa7450a43b99 190 Log("parser_read_word not implemented, returning 0");
group-FlexBook 0:fa7450a43b99 191 return 0;
group-FlexBook 0:fa7450a43b99 192 }
group-FlexBook 0:fa7450a43b99 193
group-FlexBook 0:fa7450a43b99 194 //#define LOG_SPI
group-FlexBook 0:fa7450a43b99 195
group-FlexBook 0:fa7450a43b99 196 void spi_read_bytes(uint8_t *buff, size_t size)
group-FlexBook 0:fa7450a43b99 197 {
group-FlexBook 0:fa7450a43b99 198 #ifdef LOG_SPI
group-FlexBook 0:fa7450a43b99 199 printf("spi_read_bytes(");
group-FlexBook 0:fa7450a43b99 200 #endif // LOG_SPI
group-FlexBook 0:fa7450a43b99 201 for(size_t i = 0; i < size; i++)
group-FlexBook 0:fa7450a43b99 202 {
group-FlexBook 0:fa7450a43b99 203 buff[i] = spi->write(0);
group-FlexBook 0:fa7450a43b99 204
group-FlexBook 0:fa7450a43b99 205 #ifdef LOG_SPI
group-FlexBook 0:fa7450a43b99 206 int buffint = buff[i];
group-FlexBook 0:fa7450a43b99 207 printf("%02x", buffint);
group-FlexBook 0:fa7450a43b99 208 #endif // LOG_SPI
group-FlexBook 0:fa7450a43b99 209 }
group-FlexBook 0:fa7450a43b99 210
group-FlexBook 0:fa7450a43b99 211 #ifdef LOG_SPI
group-FlexBook 0:fa7450a43b99 212 int sizeint = size;
group-FlexBook 0:fa7450a43b99 213 printf(", %02x)\n", sizeint);
group-FlexBook 0:fa7450a43b99 214 #endif // LOG_SPI
group-FlexBook 0:fa7450a43b99 215 }
group-FlexBook 0:fa7450a43b99 216
group-FlexBook 0:fa7450a43b99 217 void spi_write_bytes(uint8_t *buff, size_t size)
group-FlexBook 0:fa7450a43b99 218 {
group-FlexBook 0:fa7450a43b99 219 #ifdef LOG_SPI
group-FlexBook 0:fa7450a43b99 220 int sizeint = size;
group-FlexBook 0:fa7450a43b99 221 printf("spi_write_bytes(");
group-FlexBook 0:fa7450a43b99 222 for(size_t i = 0; i < size; i++)
group-FlexBook 0:fa7450a43b99 223 {
group-FlexBook 0:fa7450a43b99 224 int buffint = buff[i];
group-FlexBook 0:fa7450a43b99 225 printf("%02x", buffint);
group-FlexBook 0:fa7450a43b99 226 }
group-FlexBook 0:fa7450a43b99 227 printf(", %02x)\n", sizeint);
group-FlexBook 0:fa7450a43b99 228 #endif // LOG_SPI
group-FlexBook 0:fa7450a43b99 229
group-FlexBook 0:fa7450a43b99 230 if(spi)
group-FlexBook 0:fa7450a43b99 231 {
group-FlexBook 0:fa7450a43b99 232 for(size_t i = 0; i < size; i++)
group-FlexBook 0:fa7450a43b99 233 {
group-FlexBook 0:fa7450a43b99 234 spi->write(buff[i]);
group-FlexBook 0:fa7450a43b99 235 }
group-FlexBook 0:fa7450a43b99 236
group-FlexBook 0:fa7450a43b99 237 } else {
group-FlexBook 0:fa7450a43b99 238
group-FlexBook 0:fa7450a43b99 239 printf("ERROR: SPI not set!!!\n");
group-FlexBook 0:fa7450a43b99 240 }
group-FlexBook 0:fa7450a43b99 241 }
group-FlexBook 0:fa7450a43b99 242
group-FlexBook 0:fa7450a43b99 243 } // End '"C" linking.
group-FlexBook 0:fa7450a43b99 244
group-FlexBook 0:fa7450a43b99 245 struct pl_platform g_plat;
group-FlexBook 0:fa7450a43b99 246
group-FlexBook 0:fa7450a43b99 247 struct pl_dispinfo g_dispinfo;
group-FlexBook 0:fa7450a43b99 248
group-FlexBook 0:fa7450a43b99 249 void WriteColour(pl_epdc &epdc, uint8_t colour)
group-FlexBook 0:fa7450a43b99 250 {
group-FlexBook 0:fa7450a43b99 251 if(epdc.fill(&epdc, NULL, colour))
group-FlexBook 0:fa7450a43b99 252 Log("fill failed");
group-FlexBook 0:fa7450a43b99 253
group-FlexBook 0:fa7450a43b99 254 if(epdc.clear_init(&epdc))
group-FlexBook 0:fa7450a43b99 255 Log("clear_init fail");
group-FlexBook 0:fa7450a43b99 256
group-FlexBook 0:fa7450a43b99 257 if(g_plat.psu.on(&g_plat.psu))
group-FlexBook 0:fa7450a43b99 258 Log("PSU on fail");
group-FlexBook 0:fa7450a43b99 259
group-FlexBook 0:fa7450a43b99 260 int wfid = pl_epdc_get_wfid(&epdc, wf_refresh);
group-FlexBook 0:fa7450a43b99 261 if (wfid < 0)
group-FlexBook 0:fa7450a43b99 262 Log("Bad wfid");
group-FlexBook 0:fa7450a43b99 263
group-FlexBook 0:fa7450a43b99 264 if(epdc.update(&epdc, wfid, NULL))
group-FlexBook 0:fa7450a43b99 265 Log("update failed");
group-FlexBook 0:fa7450a43b99 266
group-FlexBook 0:fa7450a43b99 267 if(epdc.wait_update_end(&epdc))
group-FlexBook 0:fa7450a43b99 268 Log("wait update end failed");
group-FlexBook 0:fa7450a43b99 269
group-FlexBook 0:fa7450a43b99 270 if(g_plat.psu.off(&g_plat.psu))
group-FlexBook 0:fa7450a43b99 271 Log("PSU off fail");
group-FlexBook 0:fa7450a43b99 272 }
group-FlexBook 0:fa7450a43b99 273
group-FlexBook 0:fa7450a43b99 274 void WritePicture(pl_epdc &epdc, const char *file)
group-FlexBook 0:fa7450a43b99 275 {
group-FlexBook 0:fa7450a43b99 276 //#ifdef VERBOSE
group-FlexBook 0:fa7450a43b99 277 Log("WritePicture");
group-FlexBook 0:fa7450a43b99 278 //#endif
group-FlexBook 0:fa7450a43b99 279
group-FlexBook 0:fa7450a43b99 280 if(g_plat.epdc.load_image(&g_plat.epdc, file, NULL, 0, 0))
group-FlexBook 0:fa7450a43b99 281 Log("Image load failed");
group-FlexBook 0:fa7450a43b99 282 else Log("Image loaded");
group-FlexBook 0:fa7450a43b99 283 if(g_plat.psu.on(&g_plat.psu))
group-FlexBook 0:fa7450a43b99 284 Log("PSU on fail");
group-FlexBook 0:fa7450a43b99 285 else Log ("PSU on");
group-FlexBook 0:fa7450a43b99 286 int wfid = pl_epdc_get_wfid(&epdc, wf_refresh);
group-FlexBook 0:fa7450a43b99 287 if (wfid < 0)
group-FlexBook 0:fa7450a43b99 288 Log("Bad wfid");
group-FlexBook 0:fa7450a43b99 289 else Log("Good wfid");
group-FlexBook 0:fa7450a43b99 290
group-FlexBook 0:fa7450a43b99 291 if(g_plat.epdc.update(&g_plat.epdc, wfid, NULL))
group-FlexBook 0:fa7450a43b99 292 Log("update failed");
group-FlexBook 0:fa7450a43b99 293 else Log("update succeeded");
group-FlexBook 0:fa7450a43b99 294
group-FlexBook 0:fa7450a43b99 295 if(epdc.wait_update_end(&epdc))
group-FlexBook 0:fa7450a43b99 296 Log("wait update end failed");
group-FlexBook 0:fa7450a43b99 297 else Log("wait update end succeeded");
group-FlexBook 0:fa7450a43b99 298
group-FlexBook 0:fa7450a43b99 299 if(g_plat.psu.off(&g_plat.psu))
group-FlexBook 0:fa7450a43b99 300 Log("PSU off fail");
group-FlexBook 0:fa7450a43b99 301 else Log("PSU off");
group-FlexBook 0:fa7450a43b99 302 }
group-FlexBook 0:fa7450a43b99 303
group-FlexBook 0:fa7450a43b99 304 void WriteImage(const char *file)
group-FlexBook 0:fa7450a43b99 305 {
group-FlexBook 0:fa7450a43b99 306 #ifdef VERBOSE
group-FlexBook 0:fa7450a43b99 307 Log("WritePicture");
group-FlexBook 0:fa7450a43b99 308 #endif
group-FlexBook 0:fa7450a43b99 309
group-FlexBook 0:fa7450a43b99 310 if(g_plat.epdc.load_image(&g_plat.epdc, file, NULL, 0, 0))
group-FlexBook 0:fa7450a43b99 311 Log("Image load failed");
group-FlexBook 0:fa7450a43b99 312 }
group-FlexBook 0:fa7450a43b99 313
group-FlexBook 0:fa7450a43b99 314 void WritePartImage(const char *file, int xd, int yd, int xi, int yi, int w, int h)
group-FlexBook 0:fa7450a43b99 315 {
group-FlexBook 0:fa7450a43b99 316 #ifdef VERBOSE
group-FlexBook 0:fa7450a43b99 317 Log("WritePartImage");
group-FlexBook 0:fa7450a43b99 318 #endif
group-FlexBook 0:fa7450a43b99 319
group-FlexBook 0:fa7450a43b99 320 pl_area area;
group-FlexBook 0:fa7450a43b99 321
group-FlexBook 0:fa7450a43b99 322 area.left = xd;
group-FlexBook 0:fa7450a43b99 323 area.top = yd;
group-FlexBook 0:fa7450a43b99 324 area.width = w;
group-FlexBook 0:fa7450a43b99 325 area.height = h;
group-FlexBook 0:fa7450a43b99 326
group-FlexBook 0:fa7450a43b99 327 if(g_plat.epdc.load_image(&g_plat.epdc, file, &area, xi, yi))
group-FlexBook 0:fa7450a43b99 328 Log("Image load failed");
group-FlexBook 0:fa7450a43b99 329 }
group-FlexBook 0:fa7450a43b99 330
group-FlexBook 0:fa7450a43b99 331 void UpdateDisplay()
group-FlexBook 0:fa7450a43b99 332 {
group-FlexBook 0:fa7450a43b99 333 #ifdef VERBOSE
group-FlexBook 0:fa7450a43b99 334 Log("UpdateDisplay");
group-FlexBook 0:fa7450a43b99 335 #endif
group-FlexBook 0:fa7450a43b99 336
group-FlexBook 0:fa7450a43b99 337 if(g_plat.psu.on(&g_plat.psu))
group-FlexBook 0:fa7450a43b99 338 Log("PSU on fail");
group-FlexBook 0:fa7450a43b99 339
group-FlexBook 0:fa7450a43b99 340 int wfid = pl_epdc_get_wfid(&g_plat.epdc, wf_refresh);
group-FlexBook 0:fa7450a43b99 341 if (wfid < 0)
group-FlexBook 0:fa7450a43b99 342 Log("Bad wfid");
group-FlexBook 0:fa7450a43b99 343
group-FlexBook 0:fa7450a43b99 344 if(g_plat.epdc.update(&g_plat.epdc, wfid, NULL))
group-FlexBook 0:fa7450a43b99 345 Log("update failed");
group-FlexBook 0:fa7450a43b99 346
group-FlexBook 0:fa7450a43b99 347 if(g_plat.epdc.wait_update_end(&g_plat.epdc))
group-FlexBook 0:fa7450a43b99 348 Log("wait update end failed");
group-FlexBook 0:fa7450a43b99 349
group-FlexBook 0:fa7450a43b99 350 if(g_plat.psu.off(&g_plat.psu))
group-FlexBook 0:fa7450a43b99 351 Log("PSU off fail");
group-FlexBook 0:fa7450a43b99 352 }
group-FlexBook 0:fa7450a43b99 353
group-FlexBook 0:fa7450a43b99 354 int pl_i2c_reg_read_8(I2C &i2c, uint8_t i2c_addr, uint8_t reg, uint8_t *data);
group-FlexBook 0:fa7450a43b99 355
group-FlexBook 0:fa7450a43b99 356 int pl_i2c_reg_write_8(I2C &i2c, uint8_t i2c_addr, uint8_t reg, uint8_t data);
group-FlexBook 0:fa7450a43b99 357
group-FlexBook 0:fa7450a43b99 358 void pl_hwinfo_log(const struct pl_hwinfo *info)
group-FlexBook 0:fa7450a43b99 359 {
group-FlexBook 0:fa7450a43b99 360 #if VERBOSE
group-FlexBook 0:fa7450a43b99 361 const struct pl_hw_vcom_info *vcom = &info->vcom;
group-FlexBook 0:fa7450a43b99 362 #endif
group-FlexBook 0:fa7450a43b99 363 const struct pl_hw_board_info *board = &info->board;
group-FlexBook 0:fa7450a43b99 364
group-FlexBook 0:fa7450a43b99 365 #if VERBOSE
group-FlexBook 0:fa7450a43b99 366 printf("Version: %d\n", info->version);
group-FlexBook 0:fa7450a43b99 367 printf("VCOM DAC info: dac[%d]=%d, dac[%d]=%d\n",
group-FlexBook 0:fa7450a43b99 368 vcom->dac_x1, vcom->dac_y1, vcom->dac_x2, vcom->dac_y2);
group-FlexBook 0:fa7450a43b99 369 printf("Gate PSU info: VGPOS=%ld, VGNEG=%ld, swing=%ld\n",
group-FlexBook 0:fa7450a43b99 370 vcom->vgpos_mv, vcom->vgneg_mv, vcom->swing_ideal);
group-FlexBook 0:fa7450a43b99 371 #endif
group-FlexBook 0:fa7450a43b99 372 printf("Board type: %s, version: %d.%d\n",
group-FlexBook 0:fa7450a43b99 373 board->board_type, board->board_ver_maj, board->board_ver_min);
group-FlexBook 0:fa7450a43b99 374 #if VERBOSE
group-FlexBook 0:fa7450a43b99 375 printf("vcom_mode=%d, hv_pmic=%d, vcom_dac=%d, vcom_adc=%d\n",
group-FlexBook 0:fa7450a43b99 376 board->vcom_mode, board->hv_pmic, board->vcom_dac, board->vcom_adc);
group-FlexBook 0:fa7450a43b99 377 printf("io_config=%d, i2c_mode=%d, temp_sensor=%d, frame_buffer=%d\n",
group-FlexBook 0:fa7450a43b99 378 board->io_config, board->i2c_mode, board->temp_sensor,
group-FlexBook 0:fa7450a43b99 379 board->frame_buffer);
group-FlexBook 0:fa7450a43b99 380 printf("epdc_ref=%d, adc_scale_1=%d, adc_scale_2=%d\n",
group-FlexBook 0:fa7450a43b99 381 board->epdc_ref, board->adc_scale_1, board->adc_scale_2);
group-FlexBook 0:fa7450a43b99 382 printf("CRC16: %04X\n", info->crc);
group-FlexBook 0:fa7450a43b99 383 #endif
group-FlexBook 0:fa7450a43b99 384 }
group-FlexBook 0:fa7450a43b99 385
group-FlexBook 0:fa7450a43b99 386 #define CONFIG_DEFAULT_I2C_MODE I2C_MODE_HOST
group-FlexBook 0:fa7450a43b99 387 #define BOARD_MAJ 6
group-FlexBook 0:fa7450a43b99 388 #define BOARD_MIN 3
group-FlexBook 0:fa7450a43b99 389
group-FlexBook 0:fa7450a43b99 390 static const struct pl_hwinfo g_hwinfo_default = {
group-FlexBook 0:fa7450a43b99 391 /* version */
group-FlexBook 0:fa7450a43b99 392 PL_HWINFO_VERSION,
group-FlexBook 0:fa7450a43b99 393 /* vcom */
group-FlexBook 0:fa7450a43b99 394 { 127, 4172, 381, 12490, 25080, -32300, 56886 },
group-FlexBook 0:fa7450a43b99 395 /* board */
group-FlexBook 0:fa7450a43b99 396 { "HB", BOARD_MAJ, BOARD_MIN, 0, HV_PMIC_TPS65185, 0, 0, 0,
group-FlexBook 0:fa7450a43b99 397 CONFIG_DEFAULT_I2C_MODE, TEMP_SENSOR_NONE, 0, EPDC_S1D13541, 1, 1 },
group-FlexBook 0:fa7450a43b99 398 /* CRC16 (not used when not reading from actual EEPROM) */
group-FlexBook 0:fa7450a43b99 399 0xFFFF,
group-FlexBook 0:fa7450a43b99 400 };
group-FlexBook 0:fa7450a43b99 401
group-FlexBook 0:fa7450a43b99 402 FIL g_wflib_fatfs_file;
group-FlexBook 0:fa7450a43b99 403
group-FlexBook 0:fa7450a43b99 404 static struct pl_epdpsu_gpio g_epdpsu_gpio = {
group-FlexBook 0:fa7450a43b99 405 &g_plat.gpio, PMIC_EN, HVSW_CTRL, PMIC_POK, PMIC_FLT, 300, 5, 100
group-FlexBook 0:fa7450a43b99 406 };
group-FlexBook 0:fa7450a43b99 407
group-FlexBook 0:fa7450a43b99 408 struct vcom_cal vcom_cal;
group-FlexBook 0:fa7450a43b99 409
group-FlexBook 0:fa7450a43b99 410 pl_epdc &Get_epdc()
group-FlexBook 0:fa7450a43b99 411 {
group-FlexBook 0:fa7450a43b99 412 return g_plat.epdc;
group-FlexBook 0:fa7450a43b99 413 }
group-FlexBook 0:fa7450a43b99 414
group-FlexBook 0:fa7450a43b99 415 std::ostream &operator<<(std::ostream &s, pl_gpio &gpio)
group-FlexBook 0:fa7450a43b99 416 {
group-FlexBook 0:fa7450a43b99 417 s << "pl_gpio\n";
group-FlexBook 0:fa7450a43b99 418
group-FlexBook 0:fa7450a43b99 419 s << gpio.config << "\n";
group-FlexBook 0:fa7450a43b99 420 s << gpio.get << "\n";
group-FlexBook 0:fa7450a43b99 421 s << gpio.set << "\n";
group-FlexBook 0:fa7450a43b99 422
group-FlexBook 0:fa7450a43b99 423 return s;
group-FlexBook 0:fa7450a43b99 424 }
group-FlexBook 0:fa7450a43b99 425
group-FlexBook 0:fa7450a43b99 426 std::ostream &operator<<(std::ostream &s, pl_epdpsu &epdpsu)
group-FlexBook 0:fa7450a43b99 427 {
group-FlexBook 0:fa7450a43b99 428 s << "pl_epdpsu\n";
group-FlexBook 0:fa7450a43b99 429
group-FlexBook 0:fa7450a43b99 430 s << epdpsu.on << "\n";
group-FlexBook 0:fa7450a43b99 431 s << epdpsu.off << "\n";
group-FlexBook 0:fa7450a43b99 432 s << epdpsu.state << "\n";
group-FlexBook 0:fa7450a43b99 433 s << epdpsu.data << "\n";
group-FlexBook 0:fa7450a43b99 434
group-FlexBook 0:fa7450a43b99 435 return s;
group-FlexBook 0:fa7450a43b99 436 };
group-FlexBook 0:fa7450a43b99 437
group-FlexBook 0:fa7450a43b99 438 std::ostream &operator<<(std::ostream &s, pl_epdc &epdc)
group-FlexBook 0:fa7450a43b99 439 {
group-FlexBook 0:fa7450a43b99 440 s << "pl_epdc\n";
group-FlexBook 0:fa7450a43b99 441
group-FlexBook 0:fa7450a43b99 442 s << epdc.clear_init << "\n";
group-FlexBook 0:fa7450a43b99 443 s << epdc.load_wflib << "\n";
group-FlexBook 0:fa7450a43b99 444 s << epdc.update << "\n";
group-FlexBook 0:fa7450a43b99 445 s << epdc.wait_update_end << "\n";
group-FlexBook 0:fa7450a43b99 446 s << epdc.set_power << "\n";
group-FlexBook 0:fa7450a43b99 447 s << epdc.set_temp_mode << "\n";
group-FlexBook 0:fa7450a43b99 448 s << epdc.update_temp << "\n";
group-FlexBook 0:fa7450a43b99 449 s << epdc.fill << "\n";
group-FlexBook 0:fa7450a43b99 450 s << epdc.pattern_check << "\n";
group-FlexBook 0:fa7450a43b99 451 s << epdc.load_image << "\n";
group-FlexBook 0:fa7450a43b99 452 s << epdc.set_epd_power << "\n";
group-FlexBook 0:fa7450a43b99 453
group-FlexBook 0:fa7450a43b99 454 s << epdc.wf_table << "\n";
group-FlexBook 0:fa7450a43b99 455 s << epdc.dispinfo << "\n";
group-FlexBook 0:fa7450a43b99 456 //struct pl_wflib wflib << "\n";
group-FlexBook 0:fa7450a43b99 457 s << epdc.power_state << "\n";
group-FlexBook 0:fa7450a43b99 458 s << epdc.temp_mode << "\n";
group-FlexBook 0:fa7450a43b99 459 s << epdc.manual_temp << "\n";
group-FlexBook 0:fa7450a43b99 460 s << epdc.xres << "\n";
group-FlexBook 0:fa7450a43b99 461 s << epdc.yres << "\n";
group-FlexBook 0:fa7450a43b99 462 s << epdc.data << "\n";
group-FlexBook 0:fa7450a43b99 463
group-FlexBook 0:fa7450a43b99 464 return s;
group-FlexBook 0:fa7450a43b99 465 };
group-FlexBook 0:fa7450a43b99 466
group-FlexBook 0:fa7450a43b99 467 std::ostream &operator<<(std::ostream &s, pl_platform &g_plat)
group-FlexBook 0:fa7450a43b99 468 {
group-FlexBook 0:fa7450a43b99 469 s << "pl_platform\n";
group-FlexBook 0:fa7450a43b99 470
group-FlexBook 0:fa7450a43b99 471 s << g_plat.gpio << "\n";
group-FlexBook 0:fa7450a43b99 472 s << g_plat.psu << "\n";
group-FlexBook 0:fa7450a43b99 473 s << g_plat.epdc << "\n";
group-FlexBook 0:fa7450a43b99 474 s << g_plat.i2c << "\n";
group-FlexBook 0:fa7450a43b99 475 s << g_plat.sys_gpio << "\n";
group-FlexBook 0:fa7450a43b99 476 s << g_plat.hwinfo << "\n";
group-FlexBook 0:fa7450a43b99 477 s << g_plat.dispinfo << "\n";
group-FlexBook 0:fa7450a43b99 478
group-FlexBook 0:fa7450a43b99 479 return s;
group-FlexBook 0:fa7450a43b99 480 }
group-FlexBook 0:fa7450a43b99 481
group-FlexBook 0:fa7450a43b99 482 void DisplayHardwareSettings()
group-FlexBook 0:fa7450a43b99 483 {
group-FlexBook 0:fa7450a43b99 484 pl_hwinfo_log(g_plat.hwinfo);
group-FlexBook 0:fa7450a43b99 485
group-FlexBook 0:fa7450a43b99 486 #ifdef VERBOSE
group-FlexBook 0:fa7450a43b99 487 printf("Hardware information start\n"):
group-FlexBook 0:fa7450a43b99 488 std::ostringstream info;
group-FlexBook 0:fa7450a43b99 489 info << g_plat << "\n";
group-FlexBook 0:fa7450a43b99 490 printf(info.str().c_str());
group-FlexBook 0:fa7450a43b99 491
group-FlexBook 0:fa7450a43b99 492 printf("Hardware information end\n");
group-FlexBook 0:fa7450a43b99 493 #endif // VERBOSE
group-FlexBook 0:fa7450a43b99 494 }
group-FlexBook 0:fa7450a43b99 495
group-FlexBook 0:fa7450a43b99 496 // Configure the EPSON controller settings.
group-FlexBook 0:fa7450a43b99 497 s1d135xx driver = { &g_s1d135xx_data, NULL };
group-FlexBook 0:fa7450a43b99 498
group-FlexBook 0:fa7450a43b99 499
group-FlexBook 0:fa7450a43b99 500 void InitDisplay(I2C &i2c, SPI &spi_in, DigitalOut &spics, DigitalOut &hven, DigitalOut &rst, DigitalIn &hvpok)
group-FlexBook 0:fa7450a43b99 501 {
group-FlexBook 0:fa7450a43b99 502 spi = &spi_in;
group-FlexBook 0:fa7450a43b99 503
group-FlexBook 0:fa7450a43b99 504 spi->frequency(1000000);
group-FlexBook 0:fa7450a43b99 505 spi->format(8, 0);
group-FlexBook 0:fa7450a43b99 506
group-FlexBook 0:fa7450a43b99 507 rst = 0;
group-FlexBook 0:fa7450a43b99 508 hven = 0;
group-FlexBook 0:fa7450a43b99 509 spics = 1;
group-FlexBook 0:fa7450a43b99 510
group-FlexBook 0:fa7450a43b99 511 // Initialise the platform settings.
group-FlexBook 0:fa7450a43b99 512 g_plat.i2c = NULL;
group-FlexBook 0:fa7450a43b99 513 g_plat.sys_gpio = NULL;
group-FlexBook 0:fa7450a43b99 514 g_plat.hwinfo = &g_hwinfo_default;
group-FlexBook 0:fa7450a43b99 515 g_plat.dispinfo = &g_dispinfo;
group-FlexBook 0:fa7450a43b99 516
group-FlexBook 0:fa7450a43b99 517 g_plat.psu.on = NULL;
group-FlexBook 0:fa7450a43b99 518 g_plat.psu.off = NULL;
group-FlexBook 0:fa7450a43b99 519 g_plat.psu.state = 0;
group-FlexBook 0:fa7450a43b99 520 g_plat.psu.data = NULL;
group-FlexBook 0:fa7450a43b99 521
group-FlexBook 0:fa7450a43b99 522 // Use a 100Khz I2c clock (the PMIC limits are 100-400KHz).
group-FlexBook 0:fa7450a43b99 523 i2c.frequency(100000);
group-FlexBook 0:fa7450a43b99 524
group-FlexBook 0:fa7450a43b99 525 // COnfigure the VCOM settings.
group-FlexBook 0:fa7450a43b99 526 g_dispinfo.info.vcom = 5124; // Note hardcoded VCOM
group-FlexBook 0:fa7450a43b99 527
group-FlexBook 0:fa7450a43b99 528 int fails = 0;
group-FlexBook 0:fa7450a43b99 529 int initfailed = -1;
group-FlexBook 0:fa7450a43b99 530 while(initfailed && fails < MAX_INIT_FAILS)
group-FlexBook 0:fa7450a43b99 531 {
group-FlexBook 0:fa7450a43b99 532 // Enable the TPS65185 PMIC.
group-FlexBook 0:fa7450a43b99 533 // The I2C is now enabled.
group-FlexBook 0:fa7450a43b99 534 hven = 1;
group-FlexBook 0:fa7450a43b99 535 wait(0.2);
group-FlexBook 0:fa7450a43b99 536
group-FlexBook 0:fa7450a43b99 537 // Hard reset the Epson controller.
group-FlexBook 0:fa7450a43b99 538 rst = 0;
group-FlexBook 0:fa7450a43b99 539 mdelay(4);
group-FlexBook 0:fa7450a43b99 540 rst = 1;
group-FlexBook 0:fa7450a43b99 541 mdelay(10);
group-FlexBook 0:fa7450a43b99 542
group-FlexBook 0:fa7450a43b99 543 // Load the display information.
group-FlexBook 0:fa7450a43b99 544 initfailed = pl_wflib_init_fatfs(&g_plat.epdc.wflib, (int *) &g_wflib_fatfs_file, g_wflib_fatfs_path);
group-FlexBook 0:fa7450a43b99 545 if(initfailed != 0)
group-FlexBook 0:fa7450a43b99 546 {
group-FlexBook 0:fa7450a43b99 547 Log("Failed to load display info");
group-FlexBook 0:fa7450a43b99 548 fails++;
group-FlexBook 0:fa7450a43b99 549
group-FlexBook 0:fa7450a43b99 550 } else {
group-FlexBook 0:fa7450a43b99 551
group-FlexBook 0:fa7450a43b99 552 pl_epdpsu_gpio_init(&g_plat.psu, &g_epdpsu_gpio);
group-FlexBook 0:fa7450a43b99 553 vcom_init(&vcom_cal, &g_plat.hwinfo->vcom);
group-FlexBook 0:fa7450a43b99 554 initfailed = tps65185_init(&pmic_info, i2c, I2C_PMIC_ADDR_TPS65185, &vcom_cal);
group-FlexBook 0:fa7450a43b99 555 if(initfailed != 0)
group-FlexBook 0:fa7450a43b99 556 {
group-FlexBook 0:fa7450a43b99 557 Log("Error initalizing TPS65185");
group-FlexBook 0:fa7450a43b99 558 fails++;
group-FlexBook 0:fa7450a43b99 559
group-FlexBook 0:fa7450a43b99 560 } else {
group-FlexBook 0:fa7450a43b99 561
group-FlexBook 0:fa7450a43b99 562 initfailed = tps65185_set_vcom_voltage(&pmic_info, g_plat.dispinfo->info.vcom);
group-FlexBook 0:fa7450a43b99 563 if(initfailed != 0)
group-FlexBook 0:fa7450a43b99 564 {
group-FlexBook 0:fa7450a43b99 565 Log("Error initalizing VCOM");
group-FlexBook 0:fa7450a43b99 566 fails++;
group-FlexBook 0:fa7450a43b99 567
group-FlexBook 0:fa7450a43b99 568 } else {
group-FlexBook 0:fa7450a43b99 569
group-FlexBook 0:fa7450a43b99 570 if(epson_epdc_init(&g_plat.epdc, g_plat.dispinfo, EPSON_EPDC_S1D13541, &driver) != 0)
group-FlexBook 0:fa7450a43b99 571 {
group-FlexBook 0:fa7450a43b99 572 Log("Error initalizing EPDC");
group-FlexBook 0:fa7450a43b99 573
group-FlexBook 0:fa7450a43b99 574 } else {
group-FlexBook 0:fa7450a43b99 575
group-FlexBook 0:fa7450a43b99 576 // Display the hardware settings.
group-FlexBook 0:fa7450a43b99 577 DisplayHardwareSettings();
group-FlexBook 0:fa7450a43b99 578
group-FlexBook 0:fa7450a43b99 579 Log("White screen");
group-FlexBook 0:fa7450a43b99 580 WriteColour(g_plat.epdc, PL_WHITE);
group-FlexBook 0:fa7450a43b99 581
group-FlexBook 0:fa7450a43b99 582 //wait(4);
group-FlexBook 0:fa7450a43b99 583
group-FlexBook 0:fa7450a43b99 584 Log("Black screen");
group-FlexBook 0:fa7450a43b99 585 WriteColour(g_plat.epdc, PL_BLACK);
group-FlexBook 0:fa7450a43b99 586
group-FlexBook 0:fa7450a43b99 587 /*wait(4);
group-FlexBook 0:fa7450a43b99 588
group-FlexBook 0:fa7450a43b99 589 Log("White screen");
group-FlexBook 0:fa7450a43b99 590 WriteColour(g_plat.epdc, PL_WHITE);
group-FlexBook 0:fa7450a43b99 591
group-FlexBook 0:fa7450a43b99 592 wait(4);
group-FlexBook 0:fa7450a43b99 593 Log("Picture");
group-FlexBook 0:fa7450a43b99 594 WritePicture(g_plat.epdc, "/myfile.pgm");*/
group-FlexBook 0:fa7450a43b99 595
group-FlexBook 0:fa7450a43b99 596 /*WriteColour(g_plat.epdc, PL_WHITE);
group-FlexBook 0:fa7450a43b99 597 Log("Picture");
group-FlexBook 0:fa7450a43b99 598 wait(1);
group-FlexBook 0:fa7450a43b99 599 WritePicture(g_plat.epdc, "/logos2.pgm");
group-FlexBook 0:fa7450a43b99 600 wait(5);
group-FlexBook 0:fa7450a43b99 601 //ShortBeep();
group-FlexBook 0:fa7450a43b99 602 WritePicture(g_plat.epdc, "/hang00.pgm");
group-FlexBook 0:fa7450a43b99 603 wait (2);
group-FlexBook 0:fa7450a43b99 604 //ShortBeep();
group-FlexBook 0:fa7450a43b99 605 WritePicture(g_plat.epdc, "/hang01.pgm");
group-FlexBook 0:fa7450a43b99 606 wait (2);
group-FlexBook 0:fa7450a43b99 607 //ShortBeep();
group-FlexBook 0:fa7450a43b99 608 WritePicture(g_plat.epdc, "/hang02.pgm");
group-FlexBook 0:fa7450a43b99 609 wait (2);
group-FlexBook 0:fa7450a43b99 610 //ShortBeep();
group-FlexBook 0:fa7450a43b99 611 WritePicture(g_plat.epdc, "/hang03.pgm");
group-FlexBook 0:fa7450a43b99 612 wait (2);
group-FlexBook 0:fa7450a43b99 613 //ShortBeep();
group-FlexBook 0:fa7450a43b99 614 WritePicture(g_plat.epdc, "/hang04.pgm");
group-FlexBook 0:fa7450a43b99 615 wait (2);
group-FlexBook 0:fa7450a43b99 616 //ShortBeep();
group-FlexBook 0:fa7450a43b99 617 WritePicture(g_plat.epdc, "/hang05.pgm");
group-FlexBook 0:fa7450a43b99 618 wait (2);
group-FlexBook 0:fa7450a43b99 619 //ShortBeep();
group-FlexBook 0:fa7450a43b99 620 WritePicture(g_plat.epdc, "/hang06.pgm");
group-FlexBook 0:fa7450a43b99 621 wait (2);
group-FlexBook 0:fa7450a43b99 622 //ShortBeep();
group-FlexBook 0:fa7450a43b99 623 WritePicture(g_plat.epdc, "/hang07.pgm");
group-FlexBook 0:fa7450a43b99 624 wait (2);
group-FlexBook 0:fa7450a43b99 625 //ShortBeep();
group-FlexBook 0:fa7450a43b99 626 WritePicture(g_plat.epdc, "/hang08.pgm");
group-FlexBook 0:fa7450a43b99 627 wait(2);
group-FlexBook 0:fa7450a43b99 628 //ShortBeep();
group-FlexBook 0:fa7450a43b99 629 WritePicture(g_plat.epdc, "/hang09.pgm");
group-FlexBook 0:fa7450a43b99 630 wait (2);
group-FlexBook 0:fa7450a43b99 631 //ShortBeep();
group-FlexBook 0:fa7450a43b99 632 WritePicture(g_plat.epdc, "/hang10.pgm");
group-FlexBook 0:fa7450a43b99 633 wait (2);
group-FlexBook 0:fa7450a43b99 634 //ShortBeep();
group-FlexBook 0:fa7450a43b99 635 WritePicture(g_plat.epdc, "/hang11.pgm");
group-FlexBook 0:fa7450a43b99 636 wait (2);*/
group-FlexBook 0:fa7450a43b99 637 }
group-FlexBook 0:fa7450a43b99 638 }
group-FlexBook 0:fa7450a43b99 639 }
group-FlexBook 0:fa7450a43b99 640 }
group-FlexBook 0:fa7450a43b99 641 }
group-FlexBook 0:fa7450a43b99 642
group-FlexBook 0:fa7450a43b99 643 if(fails < MAX_INIT_FAILS)
group-FlexBook 0:fa7450a43b99 644 printf("Init done, %d retries\n", fails);
group-FlexBook 0:fa7450a43b99 645 else
group-FlexBook 0:fa7450a43b99 646 printf("Init aborted, retry limit of %d exceeded\n", fails);
group-FlexBook 0:fa7450a43b99 647 }
group-FlexBook 0:fa7450a43b99 648
group-FlexBook 0:fa7450a43b99 649 void WriteImage ( const int number)
group-FlexBook 0:fa7450a43b99 650 {
group-FlexBook 0:fa7450a43b99 651 printf("WriteImage in eink.cpp\n");
group-FlexBook 0:fa7450a43b99 652 switch (number)
group-FlexBook 0:fa7450a43b99 653 {
group-FlexBook 0:fa7450a43b99 654 case 0:
group-FlexBook 0:fa7450a43b99 655 WritePicture(g_plat.epdc, "/hang00.pgm");
group-FlexBook 0:fa7450a43b99 656 break;
group-FlexBook 0:fa7450a43b99 657 case 1:
group-FlexBook 0:fa7450a43b99 658 WritePicture(g_plat.epdc, "/hang01.pgm");
group-FlexBook 0:fa7450a43b99 659 break;
group-FlexBook 0:fa7450a43b99 660 case 2:
group-FlexBook 0:fa7450a43b99 661 WritePicture(g_plat.epdc, "/hang02.pgm");
group-FlexBook 0:fa7450a43b99 662 break;
group-FlexBook 0:fa7450a43b99 663 case 3:
group-FlexBook 0:fa7450a43b99 664 WritePicture(g_plat.epdc, "/hang03.pgm");
group-FlexBook 0:fa7450a43b99 665 break;
group-FlexBook 0:fa7450a43b99 666 case 4:
group-FlexBook 0:fa7450a43b99 667 WritePicture(g_plat.epdc, "/hang04.pgm");
group-FlexBook 0:fa7450a43b99 668 break;
group-FlexBook 0:fa7450a43b99 669 case 5:
group-FlexBook 0:fa7450a43b99 670 WritePicture(g_plat.epdc, "/hang05.pgm");
group-FlexBook 0:fa7450a43b99 671 break;
group-FlexBook 0:fa7450a43b99 672 case 6:
group-FlexBook 0:fa7450a43b99 673 WritePicture(g_plat.epdc, "/hang06.pgm");
group-FlexBook 0:fa7450a43b99 674 break;
group-FlexBook 0:fa7450a43b99 675 case 7:
group-FlexBook 0:fa7450a43b99 676 WritePicture(g_plat.epdc, "/hang07.pgm");
group-FlexBook 0:fa7450a43b99 677 break;
group-FlexBook 0:fa7450a43b99 678 case 8:
group-FlexBook 0:fa7450a43b99 679 WritePicture(g_plat.epdc, "/hang08.pgm");
group-FlexBook 0:fa7450a43b99 680 break;
group-FlexBook 0:fa7450a43b99 681 default:
group-FlexBook 0:fa7450a43b99 682 break;
group-FlexBook 0:fa7450a43b99 683 }
group-FlexBook 0:fa7450a43b99 684 }