void matrix_scan_kb(void) { #ifdef WATCHDOG_ENABLE wdt_reset(); #endif #ifdef ISSI_ENABLE // switch/underglow lighting update static uint32_t issi_device = 0; static uint32_t twi_last_ready = 0; if(twi_last_ready > 1000){ // Its been way too long since the last ISSI update, reset the I2C bus and start again xprintf("TWI failed to recover, TWI re-init\n"); twi_last_ready = 0; TWIInit(); force_issi_refresh(); } if(isTWIReady()){ twi_last_ready = 0; // If the i2c bus is available, kick off the issi update, alternate between devices update_issi(issi_device, issi_device); if(issi_device){ issi_device = 0; }else{ issi_device = 3; } }else{ twi_last_ready++; } #endif matrix_scan_user(); }
void matrix_scan_kb(void) { // Looping keyboard code goes here // This runs every cycle (a lot) matrix_scan_user(); #ifdef BACKLIGHT_ENABLE backlight_task(); #endif };
void matrix_scan_kb(void) { // if LEDs were previously on before poweroff, turn them back on if (rgb_init == false && rgblight_config.enable) { i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100); rgb_init = true; } rgblight_task(); matrix_scan_user(); }
void matrix_scan_kb(void) { #ifdef WATCHDOG_ENABLE wdt_reset(); #endif #ifdef ISSI_ENABLE // switch/underglow lighting update static uint32_t issi_device = 0; static uint32_t twi_last_ready = 0; if(twi_last_ready > 1000){ // Its been way too long since the last ISSI update, reset the I2C bus and start again dprintf("TWI failed to recover, TWI re-init\n"); twi_last_ready = 0; TWIInit(); force_issi_refresh(); } if(isTWIReady()){ twi_last_ready = 0; // If the i2c bus is available, kick off the issi update, alternate between devices update_issi(issi_device, issi_device); if(issi_device){ issi_device = 0; }else{ issi_device = 3; } }else{ twi_last_ready++; } #endif // Update layer indicator LED // // Not sure how else to reliably do this... TMK has the 'hook_layer_change' // but can't find QMK equiv static uint32_t layer_indicator = -1; if(layer_indicator != layer_state){ for(uint32_t i=0;; i++){ // the layer_info list should end with layer 0xFFFFFFFF // it will break this out of the loop and define the unknown layer color if((layer_info[i].layer == (layer_state & layer_info[i].mask)) || (layer_info[i].layer == 0xFFFFFFFF)){ OCR1A = layer_info[i].color.red; OCR1B = layer_info[i].color.green; OCR1C = layer_info[i].color.blue; layer_indicator = layer_state; break; } } } matrix_scan_user(); }
void matrix_scan_kb(void) { matrix_scan_user(); }
void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) matrix_scan_user(); }
void matrix_scan_kb(void) { // Looping keyboard code goes here // This runs every cycle (a lot) matrix_scan_user(); };
__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
void matrix_scan_kb(void) { // This only updates the LED driver buffers if something has changed. backlight_update_pwm_buffers(); matrix_scan_user(); }