Better partial refresh, better minute refresh

This commit is contained in:
atc1441
2022-02-15 16:18:27 +01:00
parent fc5d73f856
commit ff19c0aa0f
5 changed files with 17 additions and 11 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -18,8 +18,8 @@ RAM uint8_t battery_level;
RAM uint16_t battery_mv;
RAM int16_t temperature;
RAM uint8_t count_epd_refresh = 60;
RAM uint8_t hour_refresh = 0;
RAM uint8_t hour_refresh = 100;
RAM uint8_t minute_refresh = 100;
// Settings
extern settings_struct settings;
@@ -53,18 +53,18 @@ _attribute_ram_code_ void main_loop(void)
battery_mv = get_battery_mv();
battery_level = get_battery_level(battery_mv);
temperature = get_temperature_c();
set_adv_data(EPD_read_temp()*10, battery_level, battery_mv);
set_adv_data(EPD_read_temp() * 10, battery_level, battery_mv);
ble_send_battery(battery_level);
ble_send_temp(EPD_read_temp()*10);
ble_send_temp(EPD_read_temp() * 10);
}
if (time_reached_period(Timer_CH_2, 60))
uint8_t current_minute = (get_time() / 60) % 60;
if (current_minute != minute_refresh)
{
count_epd_refresh++;
minute_refresh = current_minute;
uint8_t current_hour = ((get_time() / 60) / 60) % 24;
if ((count_epd_refresh > 60) || (current_hour != hour_refresh))
if (current_hour != hour_refresh)
{
count_epd_refresh = 0;
hour_refresh = current_hour;
epd_display(get_time(), battery_mv, temperature, 1);
}

View File

@@ -21,7 +21,6 @@ RAM uint8_t epd_temperature_is_read = 0;
RAM uint8_t epd_temperature = 0;
uint8_t epd_buffer[epd_buffer_size];
RAM uint8_t epd_buffer_old[epd_buffer_size];
uint8_t epd_temp[epd_buffer_size]; // for OneBitDisplay to draw into
OBDISP obd; // virtual display structure
TIFFIMAGE tiff;
@@ -275,7 +274,7 @@ _attribute_ram_code_ void EPD_Display(unsigned char *image, int size, uint8_t fu
int i;
for (i = 0; i < size; i++)
{
EPD_WriteData(epd_buffer_old[i]);
EPD_WriteData(~epd_buffer[i]);
}
}
// load image data to EPD
@@ -283,7 +282,6 @@ _attribute_ram_code_ void EPD_Display(unsigned char *image, int size, uint8_t fu
// trigger display refresh
EPD_WriteCmd(0x12);
memcpy(epd_buffer_old, epd_buffer, size);
epd_update_state = 1;
}

View File

@@ -6,8 +6,11 @@
#include "nfc.h"
#include "main.h"
uint8_t nfc_reset[] = {0x03, 0xb5, 0xa0};
_attribute_ram_code_ void init_nfc(void)
{
gpio_write(NFC_CS, 1);
gpio_set_func(NFC_CS, AS_GPIO);
gpio_set_output_en(NFC_CS, 1);
gpio_set_input_en(NFC_CS, 0);
@@ -17,4 +20,9 @@ _attribute_ram_code_ void init_nfc(void)
gpio_set_output_en(NFC_IRQ, 0);
gpio_set_input_en(NFC_IRQ, 1);
gpio_setup_up_down_resistor(NFC_IRQ, PM_PIN_PULLUP_10K);
gpio_write(NFC_CS, 0);
sleep_us(500);
send_i2c(0xae, nfc_reset, sizeof(nfc_reset));
gpio_write(NFC_CS, 1);
}