continue writing

This commit is contained in:
Edward Emelianov
2025-09-16 22:53:15 +03:00
parent ec8d56c4ae
commit 3e701f147f
25 changed files with 1345 additions and 982 deletions

View File

@@ -20,7 +20,7 @@
#include <stdint.h>
#define I2C_ADDREND (0x80)
#define I2C_BUFSIZE (256)
#define I2C_BUFSIZE (1024)
typedef enum{
I2C_SPEED_10K,
@@ -32,21 +32,25 @@ typedef enum{
} i2c_speed_t;
extern i2c_speed_t i2c_curspeed;
extern volatile uint8_t i2c_scanmode, i2c_got_DMA;
extern volatile uint8_t i2c_scanmode;
// timeout of I2C bus in ms
#define I2C_TIMEOUT (100)
void i2c_setup(i2c_speed_t speed);
uint8_t *read_i2c(uint8_t addr, uint8_t nbytes);
uint8_t *read_i2c_reg(uint8_t addr, uint8_t reg, uint8_t nbytes);
uint16_t *read_i2c_reg16(uint8_t addr, uint16_t reg16, uint8_t nbytes);
uint8_t write_i2c(uint8_t addr, uint8_t *data, uint8_t nbytes);
uint8_t write_i2c_dma(uint8_t addr, uint8_t *data, uint8_t nbytes);
uint8_t read_i2c_dma(uint8_t addr, uint8_t nbytes);
uint8_t *read_i2c(uint8_t addr, uint16_t nbytes);
uint8_t *read_i2c_reg(uint8_t addr, uint8_t reg, uint16_t nbytes);
uint16_t *read_i2c_reg16(uint8_t addr, uint16_t reg16, uint16_t nbytes);
uint8_t write_i2c(uint8_t addr, uint8_t *data, uint16_t nbytes);
uint8_t write_i2c_dma(uint8_t addr, uint8_t *data, uint16_t nbytes);
uint8_t write_i2c_dma16(uint8_t addr, uint16_t *data, uint16_t nwords);
uint8_t read_i2c_dma(uint8_t addr, uint16_t nbytes);
void i2c_bufdudump();
int i2cdma_haderr();
uint8_t *i2cdma_getbuf(uint16_t *len);
uint8_t read_i2c_dma16(uint8_t addr, uint16_t nwords);
void endianness(uint8_t isbig);
int i2c_getwords(uint16_t *buf, int bufsz);