qmk

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.z3bra.org/qmk.git
Log | Files | Refs | Submodules | LICENSE

mars80.c (2210B)


      1 /* Copyright 2019 MechMerlin
      2  *
      3  * This program is free software: you can redistribute it and/or modify
      4  * it under the terms of the GNU General Public License as published by
      5  * the Free Software Foundation, either version 2 of the License, or
      6  * (at your option) any later version.
      7  *
      8  * This program is distributed in the hope that it will be useful,
      9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     11  * GNU General Public License for more details.
     12  *
     13  * You should have received a copy of the GNU General Public License
     14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     15  */
     16 
     17 #include "mars80.h"
     18 
     19 #include "rgblight.h"
     20 #include "i2c_master.h"
     21 #include "quantum.h"
     22 
     23 #ifdef RGBLIGHT_ENABLE
     24 extern rgblight_config_t rgblight_config;
     25 
     26 void rgblight_set(void) {
     27     if (!rgblight_config.enable) {
     28         for (uint8_t i = 0; i < RGBLED_NUM; i++) {
     29             led[i].r = 0;
     30             led[i].g = 0;
     31             led[i].b = 0;
     32         }
     33     }
     34 
     35     i2c_init();
     36     i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
     37 }
     38 #endif
     39 
     40 void matrix_init_kb(void) {
     41 #ifdef RGBLIGHT_ENABLE
     42     if (rgblight_config.enable) {
     43         i2c_init();
     44         i2c_transmit(0xb0, (uint8_t*)led, 3 * RGBLED_NUM, 100);
     45     }
     46 #endif
     47     // call user level keymaps, if any
     48     matrix_init_user();
     49 }
     50 
     51 void matrix_scan_kb(void) {
     52 #ifdef RGBLIGHT_ENABLE
     53     rgblight_task();
     54 #endif
     55     matrix_scan_user();
     56     /* Nothing else for now. */
     57 }
     58 
     59 __attribute__ ((weak))
     60 void matrix_scan_user(void) {
     61 }
     62 
     63 void backlight_init_ports(void) {
     64     // initialize pins D0, D1, D4 and D6 as output
     65     setPinOutput(D0);
     66     setPinOutput(D1);
     67     setPinOutput(D4);
     68     setPinOutput(D6);
     69 
     70     // turn backlight LEDs on
     71     writePinHigh(D0);
     72     writePinHigh(D1);
     73     writePinHigh(D4);
     74     writePinHigh(D6);
     75 }
     76 
     77 void backlight_set(uint8_t level) {
     78 	if (level == 0) {
     79         // turn backlight LEDs off
     80         writePinLow(D0);
     81         writePinLow(D1);
     82         writePinLow(D4);
     83         writePinLow(D6);
     84 	} else {
     85         // turn backlight LEDs on
     86         writePinHigh(D0);
     87         writePinHigh(D1);
     88         writePinHigh(D4);
     89         writePinHigh(D6);
     90 	}
     91 }