From 30df075c3d87ce38ebc151d052cdfcd14eb56be5 Mon Sep 17 00:00:00 2001 From: lilian Date: Sun, 20 Aug 2017 11:47:08 -0300 Subject: [PATCH] change freq definition + add lower frequency for test --- extras/i2c/i2c.c | 4 ++-- extras/i2c/i2c.h | 17 +++++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index d519735..034bcdc 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -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 ; } diff --git a/extras/i2c/i2c.h b/extras/i2c/i2c.h index 45fa10c..c2e31cd 100644 --- a/extras/i2c/i2c.h +++ b/extras/i2c/i2c.h @@ -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.