BV I2C: use shared string buffer

This commit is contained in:
King Kévin 2018-03-15 18:55:31 +01:00
parent 56168c6c0c
commit 510d3c7193
1 changed files with 6 additions and 7 deletions

View File

@ -59,14 +59,13 @@ bool busvoodoo_i2c_embedded_pullup = true;
static bool busvoodoo_i2c_setup(char** prefix, const char* line)
{
bool complete = false; // is the setup complete
static char config[32] = {0}; // configuration string used as prefix
if (NULL==line) { // first call
busvoodoo_i2c_setting = BUSVOODOO_I2C_SETTING_NONE; // re-start configuration
}
switch (busvoodoo_i2c_setting) {
case BUSVOODOO_I2C_SETTING_NONE:
snprintf(config, LENGTH(config), "speed in kHz (1-400) [%u]", busvoodoo_i2c_speed);
*prefix = config; // ask for speed
snprintf(busvoodoo_global_string, LENGTH(busvoodoo_global_string), "speed in kHz (1-400) [%u]", busvoodoo_i2c_speed);
*prefix = busvoodoo_global_string; // ask for speed
busvoodoo_i2c_setting = BUSVOODOO_I2C_SETTING_SPEED;
break;
case BUSVOODOO_I2C_SETTING_SPEED:
@ -80,8 +79,8 @@ static bool busvoodoo_i2c_setup(char** prefix, const char* line)
}
}
if (BUSVOODOO_I2C_SETTING_ADDRESSBITS==busvoodoo_i2c_setting) { // if next setting
snprintf(config, LENGTH(config), "address size in bits (7,10) [%u]", busvoodoo_i2c_addressbits); // prepare next setting
*prefix = config; // display next setting
snprintf(busvoodoo_global_string, LENGTH(busvoodoo_global_string), "address size in bits (7,10) [%u]", busvoodoo_i2c_addressbits); // prepare next setting
*prefix = busvoodoo_global_string; // display next setting
}
break;
case BUSVOODOO_I2C_SETTING_ADDRESSBITS:
@ -97,8 +96,8 @@ static bool busvoodoo_i2c_setup(char** prefix, const char* line)
if (BUSVOODOO_I2C_SETTING_PULLUP==busvoodoo_i2c_setting) { // if next setting
printf("i) embedded\n");
printf("e) external\n");
snprintf(config, LENGTH(config), "pull-up resistors (i,e) [%c]", busvoodoo_i2c_embedded_pullup ? 'i' : 'e'); // prepare next setting
*prefix = config; // display next setting
snprintf(busvoodoo_global_string, LENGTH(busvoodoo_global_string), "pull-up resistors (i,e) [%c]", busvoodoo_i2c_embedded_pullup ? 'i' : 'e'); // prepare next setting
*prefix = busvoodoo_global_string; // display next setting
}
break;
case BUSVOODOO_I2C_SETTING_PULLUP: