mirror of
https://github.com/RoCry/blozi-etag.git
synced 2025-12-06 09:02:49 +08:00
Better partial refresh, better minute refresh
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user