MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / EBI_TFTInit

Function EBI_TFTInit

bsp/efm32/Libraries/emlib/src/em_ebi.c:566–614  ·  view source on GitHub ↗

/ * @brief * Configure and initialize TFT Direct Drive * * @param[in] ebiTFTInit * TFT Initialization structure ******************************************************************************/

Source from the content-addressed store, hash-verified

564 * TFT Initialization structure
565 ******************************************************************************/
566void EBI_TFTInit(const EBI_TFTInit_TypeDef *ebiTFTInit)
567{
568 uint32_t ctrl;
569
570 /* Configure base address for frame buffer offset to EBI bank */
571 EBI_TFTFrameBaseSet(ebiTFTInit->addressOffset);
572
573 /* Configure display size and porch areas */
574 EBI_TFTSizeSet(ebiTFTInit->hsize,
575 ebiTFTInit->vsize);
576 EBI_TFTHPorchSet(ebiTFTInit->hPorchFront,
577 ebiTFTInit->hPorchBack,
578 ebiTFTInit->hPulseWidth);
579 EBI_TFTVPorchSet(ebiTFTInit->vPorchFront,
580 ebiTFTInit->vPorchBack,
581 ebiTFTInit->vPulseWidth);
582
583 /* Configure timing settings */
584 EBI_TFTTimingSet(ebiTFTInit->dclkPeriod,
585 ebiTFTInit->startPosition,
586 ebiTFTInit->setupCycles,
587 ebiTFTInit->holdCycles);
588
589 /* Configure line polarity settings */
590 EBI_PolaritySet(ebiLineTFTCS, ebiTFTInit->csPolarity);
591 EBI_PolaritySet(ebiLineTFTDClk, ebiTFTInit->dclkPolarity);
592 EBI_PolaritySet(ebiLineTFTDataEn, ebiTFTInit->dataenPolarity);
593 EBI_PolaritySet(ebiLineTFTVSync, ebiTFTInit->vsyncPolarity);
594 EBI_PolaritySet(ebiLineTFTHSync, ebiTFTInit->hsyncPolarity);
595
596 /* Main control, EBI bank select, mask and blending configuration */
597 ctrl =
598 (uint32_t)(ebiTFTInit->bank) |
599 (uint32_t)(ebiTFTInit->width) |
600 (uint32_t)(ebiTFTInit->colSrc) |
601 (uint32_t)(ebiTFTInit->interleave) |
602 (uint32_t)(ebiTFTInit->fbTrigger) |
603 (uint32_t)(ebiTFTInit->shiftDClk == true ? (1 << _EBI_TFTCTRL_SHIFTDCLKEN_SHIFT) : 0) |
604 (uint32_t)(ebiTFTInit->maskBlend) |
605 (uint32_t)(ebiTFTInit->driveMode);
606
607 EBI->TFTCTRL = ctrl;
608
609 /* Enable TFT pins */
610 if (ebiTFTInit->driveMode != ebiTFTDDModeDisabled)
611 {
612 EBI->ROUTE |= (EBI_ROUTE_TFTPEN);
613 }
614}
615
616
617/***************************************************************************//**

Callers 1

efm32_spiLcd_initFunction · 0.85

Calls 6

EBI_TFTFrameBaseSetFunction · 0.85
EBI_TFTSizeSetFunction · 0.85
EBI_TFTHPorchSetFunction · 0.85
EBI_TFTVPorchSetFunction · 0.85
EBI_TFTTimingSetFunction · 0.85
EBI_PolaritySetFunction · 0.85

Tested by

no test coverage detected