57 lines
1.2 KiB
C
57 lines
1.2 KiB
C
#include "cmsis_os2.h"
|
|
|
|
#include "lvgl.h"
|
|
|
|
#include "user_epd_impl.h"
|
|
|
|
// Defined in main.c
|
|
extern SPI_HandleTypeDef hspi2;
|
|
|
|
// Private function prototypes
|
|
uint8_t _user_tasks_init_epd(void);
|
|
void _user_tasks_init_lvgl(void);
|
|
|
|
// Globals
|
|
depg0213_epd_t g_epd = {
|
|
.user_data = &hspi2,
|
|
.cb = {
|
|
.reset_cb = _epd_reset_cb,
|
|
.poll_busy_cb = _epd_poll_busy,
|
|
.write_cmd_cb = _epd_write_cmd_cb,
|
|
.write_data_cb = _epd_write_data_cb
|
|
}
|
|
};
|
|
osSemaphoreId_t g_epd_busy_semphr;
|
|
|
|
void user_tasks_initialize(void) {
|
|
if(_user_tasks_init_epd()) return;
|
|
_user_tasks_init_lvgl();
|
|
}
|
|
|
|
void user_task_flush_epd(void *arguments) {
|
|
for(;;) {
|
|
//
|
|
}
|
|
}
|
|
|
|
uint8_t _user_tasks_init_epd(void) {
|
|
depg0213_ret_t ret;
|
|
|
|
g_epd_busy_semphr = osSemaphoreNew(1U, 0U, NULL); // Max: 1, initial 1, attr NULL
|
|
if(g_epd_busy_semphr == NULL) return -1;
|
|
|
|
ret = depg0213_epd_init(&g_epd);
|
|
if(ret != DEPG0213_OK) return -2;
|
|
|
|
ret = depg0213_epd_direction(&g_epd, DEPG0213_HORIZONTAL_INVERSE);
|
|
if(ret != DEPG0213_OK) return -3;
|
|
|
|
ret = depg0213_epd_deepsleep(&g_epd);
|
|
if(ret != DEPG0213_OK) return -4;
|
|
|
|
return 0;
|
|
}
|
|
|
|
void _user_tasks_init_lvgl(void) {
|
|
lv_init();
|
|
} |