fix(core): improve robustness of touch driver

[no changelog]
pull/2385/head
tychovrahe 1 year ago committed by TychoVrahe
parent 5bda9a89d9
commit 638ebbc0df

@ -98,9 +98,15 @@ void touch_set_mode(void) {
// set register 0xA4 G_MODE to interrupt trigger mode (0x01). basically, CTPM
// generates a pulse when new data is available
uint8_t touch_panel_config[] = {0xA4, 0x01};
ensure(sectrue * (HAL_OK == i2c_transmit(TOUCH_ADDRESS, touch_panel_config,
sizeof(touch_panel_config), 10)),
"Touch screen panel was not loaded properly.");
for (int i = 0; i < 3; i++) {
if (HAL_OK == i2c_transmit(TOUCH_ADDRESS, touch_panel_config,
sizeof(touch_panel_config), 10)) {
return;
}
i2c_cycle();
}
ensure(secfalse, "Touch screen panel was not loaded properly.");
}
void touch_power_on(void) {
@ -135,9 +141,15 @@ void touch_init(void) {
void touch_sensitivity(uint8_t value) {
// set panel threshold (TH_GROUP) - default value is 0x12
uint8_t touch_panel_threshold[] = {0x80, value};
ensure(sectrue * (HAL_OK == i2c_transmit(TOUCH_ADDRESS, touch_panel_threshold,
sizeof(touch_panel_threshold), 10)),
NULL);
for (int i = 0; i < 3; i++) {
if (HAL_OK == i2c_transmit(TOUCH_ADDRESS, touch_panel_threshold,
sizeof(touch_panel_threshold), 10)) {
return;
}
i2c_cycle();
}
ensure(secfalse, "Touch screen panel was not loaded properly.");
}
uint32_t touch_is_detected(void) {

Loading…
Cancel
Save