39 lines
1.2 KiB
C
39 lines
1.2 KiB
C
#include <string.h>
|
|
|
|
#include "freertos/FreeRTOS.h"
|
|
#include "freertos/task.h"
|
|
#include "freertos/queue.h"
|
|
|
|
#include "app_lib_epd_impl.h"
|
|
|
|
static uint8_t frame_data[15000][2];
|
|
static uint8_t current_frame = 0;
|
|
|
|
TaskHandle_t xTaskEPDExampleHandle = NULL;
|
|
void vTaskEPDExample(void *pvParameters) {
|
|
app_lib_epd_impl_t epd_impl = {0};
|
|
|
|
gd_epd_042_t epd = {
|
|
.cb = {
|
|
.write_data_cb = (gd_epd_042_ret_t (*)(void *, uint8_t *, uint32_t))app_lib_epd_impl_write_data,
|
|
.write_cmd_cb = (gd_epd_042_ret_t (*)(void *, uint8_t *, uint8_t))app_lib_epd_impl_write_cmd,
|
|
.poll_busy_cb = (gd_epd_042_ret_t (*)(void *))app_lib_epd_impl_poll_busy,
|
|
.reset_cb = (gd_epd_042_ret_t (*)(void *))app_lib_epd_impl_reset
|
|
},
|
|
.user_data = &epd_impl
|
|
};
|
|
|
|
app_lib_epd_impl_init(&epd_impl);
|
|
gd_epd_042_init(&epd);
|
|
|
|
memset(frame_data[current_frame], 0xFF, 15000);
|
|
memset(frame_data[(~current_frame) & 0x01], 0xFF, 15000);
|
|
|
|
gd_epd_042_load(&epd, frame_data[current_frame], frame_data[(~current_frame) & 0x01]);
|
|
gd_epd_042_update(&epd);
|
|
gd_epd_042_deepsleep(&epd);
|
|
|
|
for(;;) {
|
|
vTaskDelay(10000);
|
|
}
|
|
} |