diff --git a/Firmware/ATC_Paper.bin b/Firmware/ATC_Paper.bin index ec3b681..5143210 100644 Binary files a/Firmware/ATC_Paper.bin and b/Firmware/ATC_Paper.bin differ diff --git a/Firmware/ATC_Paper.bin.bak b/Firmware/ATC_Paper.bin.bak deleted file mode 100644 index b4f4515..0000000 Binary files a/Firmware/ATC_Paper.bin.bak and /dev/null differ diff --git a/Firmware/src/app.c b/Firmware/src/app.c index 80cf5c8..ed87f17 100644 --- a/Firmware/src/app.c +++ b/Firmware/src/app.c @@ -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); } diff --git a/Firmware/src/epd.c b/Firmware/src/epd.c index 7b4aef9..0149e56 100755 --- a/Firmware/src/epd.c +++ b/Firmware/src/epd.c @@ -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; } diff --git a/Firmware/src/nfc.c b/Firmware/src/nfc.c index 62b574c..8add246 100644 --- a/Firmware/src/nfc.c +++ b/Firmware/src/nfc.c @@ -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); }