change freq definition + add lower frequency for test

This commit is contained in:
lilian 2017-08-20 11:47:08 -03:00
parent 50f77d6f40
commit 30df075c3d
2 changed files with 13 additions and 8 deletions

View file

@ -45,7 +45,7 @@ inline bool i2c_status(uint8_t bus)
return i2c_bus[bus].started;
}
void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, uint8_t freq)
void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq)
{
i2c_bus[bus].started = false;
i2c_bus[bus].flag = false ;
@ -71,7 +71,7 @@ void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, uint8_t freq)
}
void i2c_frequency(uint8_t bus, uint8_t freq)
void i2c_frequency(uint8_t bus, i2c_freq_t freq)
{
i2c_bus[bus].frequency = freq ;
}

View file

@ -47,11 +47,16 @@ extern "C" {
* Warning : 1 is minimal, that mean at 80MHz clock, frequency max is 320kHz
* Array format is { {160MHz, 80MHz} , {160MHz, 80MHz} , ... }
*/
#define I2C_FREQ_100K 0
#define I2C_FREQ_400K 1
#define I2C_FREQ_500K 2
#define NB_FREQ_AVAILABLE 4
const static uint8_t i2c_freq_array[3][2] = { {100,20}, {10,1}, {6,1} } ;
typedef enum {
I2C_FREQ_80K = 0,
I2C_FREQ_100K,
I2C_FREQ_400K,
I2C_FREQ_500K,
} i2c_freq_t;
const static uint8_t i2c_freq_array[NB_FREQ_AVAILABLE][2] = { {255,35}, {100,20}, {10,1}, {6,1} } ;
/**
* Device descriptor
@ -87,14 +92,14 @@ typedef struct i2c_bus_description {
* @param sda_pin SDA pin for I2C
* @param freq frequency of bus (ex : I2C_FREQ_400K)
*/
void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, uint8_t freq);
void i2c_init(uint8_t bus, uint8_t scl_pin, uint8_t sda_pin, i2c_freq_t freq);
/**
* Change bus frequency
* @param bus Bus i2c selection
* @param freq frequency of bus (ex : I2C_FREQ_400K)
*/
void i2c_frequency(uint8_t bus, uint8_t freq);
void i2c_frequency(uint8_t bus, i2c_freq_t freq);
/**
* Write a byte to I2C bus.