forked from forks/qmk_firmware
a98a91cf1b
* Added Modular keyboards L,R and NUM Created code modules for the 3 modules of the modular keyboard. Original idea by MechboardsUK. Uses i2c implementation similar to lets split * Remove modular from master This is to fix incorrect branching * General fixes for RGB_matrix - Complited speed support for all effects - Fixed raindrop effects to initialized after toggle - Fixed raindrop effects to use all available LEDs - Fixed effect step reverse function - Moved RGB_MATRIX_SOLID_REACTIVE under correct flag * Documentation update for RGBmatrix * More doc updates * I2C library can now retry if it has failed - Replaced the original TWIlib by LFKeyboard's modified version - Allows for an extra argument on TWITransmitData, if blocking is set to 1 function will retry to transmit on failure. Good for noisy boards. * RGB Matrix, use alternative I2C library TWIlib seems to be hanging for me sometimes probably due to ISR routine. I have used i2c_master as a good alternative. Note: this commit is for Wilba6582 to verify before merge * Update rgb_matrix.c * RGB matrix cleanup - Remove TWIlib
23 lines
696 B
C
Executable file
23 lines
696 B
C
Executable file
/* Library made by: g4lvanix
|
|
* Github repository: https://github.com/g4lvanix/I2C-master-lib
|
|
*/
|
|
|
|
#ifndef I2C_MASTER_H
|
|
#define I2C_MASTER_H
|
|
|
|
#define I2C_READ 0x01
|
|
#define I2C_WRITE 0x00
|
|
|
|
void i2c_init(void);
|
|
uint8_t i2c_start(uint8_t address);
|
|
uint8_t i2c_write(uint8_t data);
|
|
uint8_t i2c_read_ack(void);
|
|
uint8_t i2c_read_nack(void);
|
|
uint8_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length);
|
|
uint8_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length);
|
|
uint8_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length);
|
|
uint8_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length);
|
|
void i2c_stop(void);
|
|
|
|
#endif // I2C_MASTER_H
|