Skip to content

Commit

Permalink
fix about screen off timer
Browse files Browse the repository at this point in the history
* Fix Up ScreenOffInterval exceeded uint16_t

* Fix Up never waking up once screen off if in case of matrix are not dirty.
  • Loading branch information
comaid committed Oct 27, 2018
1 parent b11a776 commit 3d175f2
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 2 deletions.
21 changes: 21 additions & 0 deletions keyboards/crkbd/.vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.16299.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.13.26128/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "msvc-x64"
}
],
"version": 4
}
6 changes: 6 additions & 0 deletions keyboards/crkbd/crkbd.c
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
#include "crkbd.h"
#include "ssd1306.h"

bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
process_record_gfx(keycode,record);
return process_record_user(keycode, record);
}
16 changes: 14 additions & 2 deletions keyboards/crkbd/ssd1306.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,17 @@ static const unsigned char font[] PROGMEM;
//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) {
Expand Down Expand Up @@ -321,12 +326,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
3 changes: 3 additions & 0 deletions keyboards/crkbd/ssd1306.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <stdbool.h>
#include <stdio.h>
#include "pincontrol.h"
#include "action.h"

enum ssd1306_cmds {
DisplayOff = 0xAE,
Expand Down Expand Up @@ -86,3 +87,5 @@ void matrix_write(struct CharacterMatrix *matrix, const char *data);
void matrix_write_ln(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);

0 comments on commit 3d175f2

Please sign in to comment.