generated from Embedded_Projects/Fire_RT1021_EVK_Template
79 lines
1.9 KiB
C
79 lines
1.9 KiB
C
/* FreeRTOS */
|
|
#include "FreeRTOS.h"
|
|
#include "task.h"
|
|
|
|
/* SDK drivers */
|
|
#include "fsl_lpspi.h"
|
|
|
|
/* Board */
|
|
#include "board.h"
|
|
#include "clock_config.h"
|
|
#include "peripherals.h"
|
|
#include "pin_mux.h"
|
|
|
|
/* LCD */
|
|
#include "app_impl_lcd.h"
|
|
|
|
int app_lcd_impl_init(void *handle) {
|
|
CLOCK_EnableClock(kCLOCK_Lpspi4);
|
|
|
|
lpspi_master_config_t spi_cfg;
|
|
LPSPI_MasterGetDefaultConfig(&spi_cfg);
|
|
|
|
spi_cfg.baudRate = 24000000UL;
|
|
|
|
LPSPI_MasterInit(LPSPI4, &spi_cfg, CLOCK_GetClockRootFreq(kCLOCK_LpspiClkRoot));
|
|
|
|
return 0;
|
|
}
|
|
|
|
epd_ret_t app_lcd_impl_write_command(void *handle, uint8_t *command, uint32_t len) {
|
|
lpspi_transfer_t xfer = {
|
|
.txData = command,
|
|
.dataSize = 1U,
|
|
.configFlags = kLPSPI_MasterPcsContinuous,
|
|
};
|
|
|
|
GPIO_WritePinOutput(BOARD_LCD_DC_GPIO, BOARD_INITLCDSPIPINS_DC_PIN, 0U);
|
|
|
|
status_t ret = LPSPI_MasterTransferBlocking(LPSPI4, &xfer);
|
|
if (ret != kStatus_Success) {
|
|
return EPD_FAIL;
|
|
}
|
|
|
|
if (len > 1) {
|
|
GPIO_WritePinOutput(BOARD_LCD_DC_GPIO, BOARD_INITLCDSPIPINS_DC_PIN, 1U);
|
|
xfer.txData = &command[1];
|
|
xfer.dataSize = len - 1;
|
|
|
|
ret = LPSPI_MasterTransferBlocking(LPSPI4, &xfer);
|
|
if (ret != kStatus_Success) {
|
|
return EPD_FAIL;
|
|
}
|
|
}
|
|
|
|
return EPD_OK;
|
|
}
|
|
|
|
epd_ret_t app_lcd_impl_write_data(void *handle, const uint8_t *data, uint32_t len) {
|
|
lpspi_transfer_t xfer = {
|
|
.txData = (uint8_t *)data,
|
|
.dataSize = len,
|
|
.configFlags = kLPSPI_MasterPcsContinuous,
|
|
};
|
|
|
|
GPIO_WritePinOutput(BOARD_LCD_DC_GPIO, BOARD_INITLCDSPIPINS_DC_PIN, 1U);
|
|
|
|
status_t ret = LPSPI_MasterTransferBlocking(LPSPI4, &xfer);
|
|
if (ret != kStatus_Success) {
|
|
return EPD_FAIL;
|
|
}
|
|
|
|
return EPD_OK;
|
|
}
|
|
|
|
epd_ret_t app_lcd_impl_delay(void *handle, uint32_t msec) {
|
|
vTaskDelay(pdMS_TO_TICKS(msec));
|
|
|
|
return EPD_OK;
|
|
} |