qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

prime_plus.c (1047B)


      1 // Copyright 2024 Dasky (@daskygit)
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 
      4 #include "quantum.h"
      5 #include "graphics/primeplus.qgf.h"
      6 
      7 painter_image_handle_t primeplus;
      8 painter_device_t       display;
      9 
     10 void board_init(void) {
     11     AFIO->MAPR |= AFIO_MAPR_I2C1_REMAP;
     12 
     13     gpio_set_pin_output(A15);
     14     gpio_write_pin_high(A15); // Activate D+ pullup
     15 
     16     gpio_set_pin_output(OPTICAL_SW_PWR);
     17     gpio_write_pin_low(OPTICAL_SW_PWR); // Enable power for optical switches
     18 
     19     gpio_set_pin_output(OLED_PWR);
     20     gpio_write_pin_high(OLED_PWR); // Enable OLED power
     21 }
     22 
     23 void keyboard_post_init_kb(void) {
     24     wait_ms(1); // Wait for OLED
     25 
     26     gpio_set_pin_output(OLED_RESET);
     27     gpio_write_pin_low(OLED_RESET);
     28     wait_us(10); // Minimum wait 1us
     29 
     30     gpio_write_pin_high(OLED_RESET);
     31     wait_ms(1); // Minimum wait 1ms
     32 
     33     primeplus = qp_load_image_mem(gfx_primeplus);
     34     display   = qp_ld7032_make_i2c_device(96, 24, 0x37);
     35 
     36     qp_init(display, QP_ROTATION_180);
     37     qp_drawimage(display, 0, 0, primeplus);
     38 
     39     keyboard_post_init_user();
     40 }