MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / xs_destm32s

Function xs_destm32s

modules/drivers/destm32s/modDestm32s.c:330–406  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

328}
329
330void xs_destm32s(xsMachine *the)
331{
332 spiDisplay sd;
333 uint8_t clear = MODDEF_DESTM32S_CLEAR && !MODDEF_DESTM32S_FULL;
334
335#if EPAPER == kePaperBlackWhite
336 if (kCommodettoBitmapGray256 != kCommodettoBitmapFormat)
337 xsUnknownError("bad format");
338#elif (EPAPER == kePaperBlackWhiteGrayRed || EPAPER == kePaperBlackWhiteRed)
339 if (kCommodettoBitmapRGB332 != kCommodettoBitmapFormat)
340 xsUnknownError("bad format");
341#else
342 xsUnknownError("bad format");
343#endif
344
345 sd = c_calloc(1, sizeof(spiDisplayRecord));
346 if (!sd)
347 xsUnknownError("no memory");
348
349 xsmcSetHostData(xsThis, sd);
350
351#if EPAPER == kePaperBlackWhite
352 sd->dispatch = (PixelsOutDispatch)&gPixelsOutDispatch_cfap122250a00213;
353#elif EPAPER == kePaperBlackWhiteGrayRed
354 sd->dispatch = (PixelsOutDispatch)&gPixelsOutDispatch_cfap104212B00213;
355#elif EPAPER == kePaperBlackWhiteRed
356 sd->dispatch = (PixelsOutDispatch)&gPixelsOutDispatch_cfap128296D00290;
357#else
358 xsUnknownError("unknown display");
359#endif
360
361 if (xsmcHas(xsArg(0), xsID_powerOff)) {
362 xsmcVars(1);
363 xsmcGet(xsVar(0), xsArg(0), xsID_powerOff);
364 sd->doPowerOff = xsmcTest(xsVar(0));
365 }
366
367 SCREEN_CS_INIT;
368 SCREEN_DC_INIT;
369
370 modGPIOInit(&sd->busy, MODDEF_DESTM32S_BUSY_PORT, MODDEF_DESTM32S_BUSY_PIN, kModGPIOInput);
371
372#ifdef MODDEF_DESTM32S_RST_PIN
373 modGPIOInit(&sd->rst, MODDEF_DESTM32S_RST_PORT, MODDEF_DESTM32S_RST_PIN, kModGPIOOutput);
374 modGPIOWrite(&sd->rst, 1);
375 modDelayMilliseconds(100);
376
377 modGPIOWrite(&sd->rst, 0);
378 modDelayMilliseconds(100);
379 modGPIOWrite(&sd->rst, 1);
380 modDelayMilliseconds(1000);
381#endif
382
383 modSPIConfig(sd->spiConfig, MODDEF_DESTM32S_HZ, MODDEF_DESTM32S_SPI_PORT,
384 MODDEF_DESTM32S_CS_PORT, MODDEF_DESTM32S_CS_PIN, destm32sChipSelect);
385 modSPIInit(&sd->spiConfig);
386
387#if EPAPER == kePaperBlackWhite

Callers

nothing calls this directly

Calls 5

destm32sInit_bwFunction · 0.85
destm32sInit_bw1rFunction · 0.85
modGPIOInitFunction · 0.50
modGPIOWriteFunction · 0.50
modSPIInitFunction · 0.50

Tested by

no test coverage detected