fix: update screen area

This commit is contained in:
reece
2022-06-12 04:18:37 +08:00
parent ee11ab05f2
commit 6216b40027
6 changed files with 36 additions and 36 deletions

Binary file not shown.

View File

@@ -7,7 +7,7 @@
#include "epd_bwr_213.h"
#include "epd_bw_213_ice.h"
#include "epd_bwr_154.h"
#include "epd_bwr_290.h"
#include "epd_bwr_296.h"
#include "drivers.h"
#include "stack/ble/ble.h"
@@ -25,7 +25,7 @@ RAM uint8_t epd_model = 0; // 0 = Undetected, 1 = BW213, 2 = BWR213, 3 = BWR154,
const char *epd_model_string[] = {"NC", "BW213", "BWR213", "BWR154", "213ICE", "BWR290"};
RAM uint8_t epd_update_state = 0;
const char *BLE_conn_string[] = {"", "B"};
const char *BLE_conn_string[] = {"BLE 0", "BLE 1"};
RAM uint8_t epd_temperature_is_read = 0;
RAM uint8_t epd_temperature = 0;
@@ -137,7 +137,7 @@ _attribute_ram_code_ void EPD_Display(unsigned char *image, int size, uint8_t fu
else if (epd_model == 4)
epd_temperature = EPD_BW_213_ice_Display(image, size, full_or_partial);
else if (epd_model == 5)
epd_temperature = EPD_BWR_290_Display(image, size, full_or_partial);
epd_temperature = EPD_BWR_296_Display(image, size, full_or_partial);
epd_temperature_is_read = 1;
epd_update_state = 1;
@@ -271,7 +271,7 @@ _attribute_ram_code_ void epd_display(uint32_t time_is, uint16_t battery_mv, int
}
else if (epd_model == 5)
{
resolution_w = 250;
resolution_w = 296;
resolution_h = 128;
}
@@ -284,8 +284,8 @@ _attribute_ram_code_ void epd_display(uint32_t time_is, uint16_t battery_mv, int
sprintf(buff, "%s", BLE_conn_string[ble_get_connected()]);
obdWriteStringCustom(&obd, (GFXfont *)&Dialog_plain_16, 232, 20, (char *)buff, 1);
sprintf(buff, "%02d:%02d", ((time_is / 60) / 60) % 24, (time_is / 60) % 60);
obdWriteStringCustom(&obd, (GFXfont *)&DSEG14_Classic_Mini_Regular_40, 50, 65, (char *)buff, 1);
sprintf(buff, "%d'C", EPD_read_temp());
obdWriteStringCustom(&obd, (GFXfont *)&DSEG14_Classic_Mini_Regular_40, 75, 65, (char *)buff, 1);
sprintf(buff, "-----%d'C-----", EPD_read_temp());
obdWriteStringCustom(&obd, (GFXfont *)&Special_Elite_Regular_30, 10, 95, (char *)buff, 1);
sprintf(buff, "Battery %dmV", battery_mv);
obdWriteStringCustom(&obd, (GFXfont *)&Dialog_plain_16, 10, 120, (char *)buff, 1);

View File

@@ -1,6 +0,0 @@
#pragma once
uint8_t EPD_BWR_290_detect(void);
uint8_t EPD_BWR_290_read_temp(void);
uint8_t EPD_BWR_290_Display(unsigned char *image, int size, uint8_t full_or_partial);
void EPD_BWR_290_set_sleep(void);

View File

@@ -3,14 +3,14 @@
#include "main.h"
#include "epd.h"
#include "epd_spi.h"
#include "epd_bwr_290.h"
#include "epd_bwr_296.h"
#include "drivers.h"
#include "stack/ble/ble.h"
// SSD1675 mixed with SSD1680 EPD Controller
#define BWR_290_Len 50
uint8_t LUT_bwr_290_part[] = {
#define BWR_296_Len 50
uint8_t LUT_bwr_296_part[] = {
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -18,7 +18,7 @@ uint8_t LUT_bwr_290_part[] = {
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
BWR_290_Len, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
BWR_296_Len, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -35,8 +35,8 @@ BWR_290_Len, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
#define EPD_BWR_290_test_pattern 0xA5
_attribute_ram_code_ uint8_t EPD_BWR_290_detect(void)
#define EPD_BWR_296_test_pattern 0xA5
_attribute_ram_code_ uint8_t EPD_BWR_296_detect(void)
{
// SW Reset
EPD_WriteCmd(0x12);
@@ -44,20 +44,20 @@ _attribute_ram_code_ uint8_t EPD_BWR_290_detect(void)
EPD_WriteCmd(0x32);
int i;
for (i = 0; i < 153; i++)// This model has a 159 bytes LUT storage so we test for that
for (i = 0; i < 296; i++)
{
EPD_WriteData(EPD_BWR_290_test_pattern);
EPD_WriteData(EPD_BWR_296_test_pattern);
}
EPD_WriteCmd(0x33);
for (i = 0; i < 153; i++)
for (i = 0; i < 296; i++)
{
if(EPD_SPI_read() != EPD_BWR_290_test_pattern)
if(EPD_SPI_read() != EPD_BWR_296_test_pattern)
return 0;
}
return 1;
}
_attribute_ram_code_ uint8_t EPD_BWR_290_read_temp(void)
_attribute_ram_code_ uint8_t EPD_BWR_296_read_temp(void)
{
uint8_t epd_temperature = 0 ;
@@ -97,10 +97,10 @@ _attribute_ram_code_ uint8_t EPD_BWR_290_read_temp(void)
// Set RAM Y- Address Start/End
EPD_WriteCmd(0x45);
EPD_WriteData(0x28);
EPD_WriteData(0x01);
EPD_WriteData(0x2E);
EPD_WriteData(0x00);
EPD_WriteData(0x27); //0x0127-->(295+1)=296
EPD_WriteData(0x01);
EPD_WriteData(0x00);
EPD_WriteData(0x00);
// Border waveform control
EPD_WriteCmd(0x3C);
@@ -138,7 +138,7 @@ _attribute_ram_code_ uint8_t EPD_BWR_290_read_temp(void)
return epd_temperature;
}
_attribute_ram_code_ uint8_t EPD_BWR_290_Display(unsigned char *image, int size, uint8_t full_or_partial)
_attribute_ram_code_ uint8_t EPD_BWR_296_Display(unsigned char *image, int size, uint8_t full_or_partial)
{
uint8_t epd_temperature = 0 ;
@@ -178,10 +178,10 @@ _attribute_ram_code_ uint8_t EPD_BWR_290_Display(unsigned char *image, int size,
// Set RAM Y- Address Start/End
EPD_WriteCmd(0x45);
EPD_WriteData(0x28);
EPD_WriteData(0x01);
EPD_WriteData(0x2E);
EPD_WriteData(0x00);
EPD_WriteData(0x27); //0x0127-->(295+1)=296
EPD_WriteData(0x01);
EPD_WriteData(0x00);
EPD_WriteData(0x00);
// Border waveform control
EPD_WriteCmd(0x3C);
@@ -242,9 +242,9 @@ _attribute_ram_code_ uint8_t EPD_BWR_290_Display(unsigned char *image, int size,
if (!full_or_partial)
{
EPD_WriteCmd(0x32);
for (i = 0; i < sizeof(LUT_bwr_290_part); i++)
for (i = 0; i < sizeof(LUT_bwr_296_part); i++)
{
EPD_WriteData(LUT_bwr_290_part[i]);
EPD_WriteData(LUT_bwr_296_part[i]);
}
}
@@ -258,7 +258,7 @@ _attribute_ram_code_ uint8_t EPD_BWR_290_Display(unsigned char *image, int size,
return epd_temperature;
}
_attribute_ram_code_ void EPD_BWR_290_set_sleep(void)
_attribute_ram_code_ void EPD_BWR_296_set_sleep(void)
{
// deep sleep
EPD_WriteCmd(0x10);

View File

@@ -0,0 +1,6 @@
#pragma once
uint8_t EPD_BWR_296_detect(void);
uint8_t EPD_BWR_296_read_temp(void);
uint8_t EPD_BWR_296_Display(unsigned char *image, int size, uint8_t full_or_partial);
void EPD_BWR_296_set_sleep(void);

View File

@@ -11,7 +11,7 @@ $(OUT_PATH)/time.o \
$(OUT_PATH)/epd_spi.o \
$(OUT_PATH)/epd.o \
$(OUT_PATH)/epd_bw_213.o \
$(OUT_PATH)/epd_bwr_290.o \
$(OUT_PATH)/epd_bwr_296.o \
$(OUT_PATH)/epd_bwr_213.o \
$(OUT_PATH)/epd_bw_213_ice.o \
$(OUT_PATH)/epd_bwr_154.o \