forked from forks/qmk_firmware
Fix up screen off timer of helix
* Fix Up ScreenOffInterval exceeded uint16_t * Fix Up never waking up once screen off if in case of matrix are not dirty
This commit is contained in:
parent
dd6aecba7a
commit
f0efb82443
|
@ -1 +1,9 @@
|
|||
#include "helix.h"
|
||||
#include "ssd1306.h"
|
||||
|
||||
#ifdef OLED_ENABLED
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
process_record_gfx(keycode,record);
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
#endif
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
#ifdef SSD1306OLED
|
||||
|
||||
#include "ssd1306.h"
|
||||
|
@ -27,12 +28,17 @@
|
|||
//static uint16_t last_battery_update;
|
||||
//static uint32_t vbat;
|
||||
//#define BatteryUpdateInterval 10000 /* milliseconds */
|
||||
#define ScreenOffInterval 300000 /* milliseconds */
|
||||
|
||||
// 'last_flush' is declared as uint16_t,
|
||||
// so this must be less than 65535
|
||||
#define ScreenOffInterval 60000 /* milliseconds */
|
||||
#if DEBUG_TO_SCREEN
|
||||
static uint8_t displaying;
|
||||
#endif
|
||||
static uint16_t last_flush;
|
||||
|
||||
static bool force_dirty = true;
|
||||
|
||||
// Write command sequence.
|
||||
// Returns true on success.
|
||||
static inline bool _send_cmd1(uint8_t cmd) {
|
||||
|
@ -318,12 +324,19 @@ void iota_gfx_task_user(void) {
|
|||
void iota_gfx_task(void) {
|
||||
iota_gfx_task_user();
|
||||
|
||||
if (display.dirty) {
|
||||
if (display.dirty|| force_dirty) {
|
||||
iota_gfx_flush();
|
||||
force_dirty = false;
|
||||
}
|
||||
|
||||
if (timer_elapsed(last_flush) > ScreenOffInterval) {
|
||||
iota_gfx_off();
|
||||
}
|
||||
}
|
||||
|
||||
bool process_record_gfx(uint16_t keycode, keyrecord_t *record) {
|
||||
force_dirty = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include "pincontrol.h"
|
||||
#include "action.h"
|
||||
|
||||
enum ssd1306_cmds {
|
||||
DisplayOff = 0xAE,
|
||||
|
@ -87,6 +88,6 @@ void matrix_write(struct CharacterMatrix *matrix, const char *data);
|
|||
void matrix_write_P(struct CharacterMatrix *matrix, const char *data);
|
||||
void matrix_render(struct CharacterMatrix *matrix);
|
||||
|
||||
|
||||
bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue