aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--laser-tag software/epaper.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/laser-tag software/epaper.c b/laser-tag software/epaper.c
index 1d3dfba..32427e5 100644
--- a/laser-tag software/epaper.c
+++ b/laser-tag software/epaper.c
@@ -9,9 +9,9 @@ typedef enum { /* Image pixel -> Display pixel */
EPD_normal /* B -> B, W -> W (New Image) */
} EPD_stage;
-static const gpio_output_pin_user_config_t pinDischarge = {
+static const gpio_output_pin_user_config_t pinReset = {
.pinName = GPIO_MAKE_PIN(GPIOA_IDX, 19),
- .config.outputLogic = 0,
+ .config.outputLogic = 1,
};
static const gpio_output_pin_user_config_t pinCS = {
@@ -45,7 +45,7 @@ void EPD_Init()
PORT_HAL_SetMuxMode(g_portBase[GPIOD_IDX], 5, kPortMuxAlt2);
PORT_HAL_SetMuxMode(g_portBase[GPIOD_IDX], 6, kPortMuxAlt2);
PORT_HAL_SetMuxMode(g_portBase[GPIOD_IDX], 7, kPortMuxAlt2);
- GPIO_DRV_OutputPinInit(&pinDischarge);
+ GPIO_DRV_OutputPinInit(&pinReset);
GPIO_DRV_OutputPinInit(&pinCS);
SPI_DRV_DmaMasterInit(1, &spiState);
uint32_t calculatedBaudRate;
@@ -195,6 +195,14 @@ void EPD_frame_repeat(const uint8_t *data, uint8_t fixed_value, EPD_stage stage)
int EPD_Draw(const uint8_t *old_image, const uint8_t *new_image)
{
+ /* Reset */
+ GPIO_DRV_WritePinOutput(pinReset.pinName, 0);
+ GPIO_DRV_WritePinOutput(pinCS.pinName, 0);
+ EPD_Delay(5);
+ GPIO_DRV_WritePinOutput(pinReset.pinName, 1);
+ GPIO_DRV_WritePinOutput(pinCS.pinName, 1);
+ EPD_Delay(5);
+
/* read the COG ID */
uint8_t id = EPD_ReadCogID();
if ((id & 0x0f) != 0x02) {
@@ -297,11 +305,6 @@ int EPD_Draw(const uint8_t *old_image, const uint8_t *new_image)
EPD_WriteCommandByte(0x07, 0x01);
EPD_Delay(50);
- /* discharge external */
- GPIO_DRV_WritePinOutput(pinDischarge.pinName, 1);
- EPD_Delay(150);
- GPIO_DRV_WritePinOutput(pinDischarge.pinName, 0);
-
return 0;
}