BV I2C: add text styles

This commit is contained in:
King Kévin 2018-09-01 01:05:56 +02:00
parent 7f7994678f
commit eff30a6431
1 changed files with 90 additions and 57 deletions

View File

@ -119,7 +119,9 @@ static bool busvoodoo_i2c_setup(char** prefix, const char* line)
i2c_master_setup(BUSVOODOO_I2C, busvoodoo_i2c_speed); // setup I2C
if (busvoodoo_i2c_embedded_pullup) {
busvoodoo_embedded_pullup(true); // set pull-up
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING);
printf("use LV to set pull-up voltage\n");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
}
busvoodoo_led_blue_off(); // disable blue LED because there is no activity
busvoodoo_i2c_setting = BUSVOODOO_I2C_SETTING_NONE; // restart settings next time
@ -171,16 +173,25 @@ static void busvoodoo_i2c_read(void)
printf("slave not selected");
break;
case I2C_MASTER_RC_NOT_READY:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING);
printf("slave not ready");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
case I2C_MASTER_RC_NOT_RECEIVE:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING);
printf("not in receive mode");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
case I2C_MASTER_RC_BUS_ERROR:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_ERROR);
printf("error detected on bus (reset I2C peripheral to correct)");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
default:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_ERROR);
printf("error");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
}
printf("\n");
}
@ -203,16 +214,25 @@ static void busvoodoo_i2c_write(uint8_t data)
printf("slave not selected");
break;
case I2C_MASTER_RC_NOT_READY:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING);
printf("slave not ready");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
case I2C_MASTER_RC_NOT_TRANSMIT:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING);
printf("not in transmit mode");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
case I2C_MASTER_RC_BUS_ERROR:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_ERROR);
printf("error detected on bus (reset I2C peripheral to correct)");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
default:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_ERROR);
printf("error");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
}
printf("\n");
}
@ -239,19 +259,30 @@ static void busvoodoo_i2c_select(uint16_t slave, bool write)
printf("no such slave");
break;
case I2C_MASTER_RC_NOT_MASTER:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING);
printf("can't become master");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
case I2C_MASTER_RC_NOT_RECEIVE:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING);
printf("not in receive mode");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
case I2C_MASTER_RC_NOT_TRANSMIT:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING);
printf("not in transmit mode");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
case I2C_MASTER_RC_BUS_ERROR:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_ERROR);
printf("error detected on bus (reset I2C peripheral to correct)");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_ERROR);
break;
default:
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_ERROR);
printf("error");
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
break;
}
printf("\n");
}
@ -509,7 +540,9 @@ static void busvoodoo_i2c_command_scan(void* argument)
}
if (I2C_MASTER_RC_NONE != i2c_master_stop(BUSVOODOO_I2C)) { // send stop condition
i2c_master_reset(BUSVOODOO_I2C); // reset the I2C peripheral since it might be stuck
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_WARNING);
printf("stop condition failed\n"); // show error to user
busvoodoo_text_style(BUSVOODOO_TEXT_STYLE_RESET);
busvoodoo_leds_blink(0.5, 0.5); // show error on LEDs
break;
}