From 148dee0ea4b4d0d434cec7524959957fcf063d8b Mon Sep 17 00:00:00 2001 From: peepeetee Date: Wed, 22 Jan 2025 21:30:32 -0600 Subject: [PATCH] fix lut, formatting changes --- keyboards/momokai/tap_trio_pro/lut.c | 35 +++++++------------ keyboards/momokai/tap_trio_pro/matrix.c | 6 ++-- .../momokai/tap_trio_pro/scanfunctions.c | 4 +-- 3 files changed, 17 insertions(+), 28 deletions(-) diff --git a/keyboards/momokai/tap_trio_pro/lut.c b/keyboards/momokai/tap_trio_pro/lut.c index 5f54f0d91fb..63171016c80 100644 --- a/keyboards/momokai/tap_trio_pro/lut.c +++ b/keyboards/momokai/tap_trio_pro/lut.c @@ -1,4 +1,4 @@ -/* Copyright 2023 RephlexZero (@RephlexZero) 2024 peepeetee (@peepeetee) 2024 Jenna Fligor (@Ex-32) +/* Copyright 202 RephlexZero (@RephlexZero) 2024 peepeetee (@peepeetee) 2024 Jenna Fligor (@Ex-32) SPDX-License-Identifier: GPL-2.0-or-later */ #include #include @@ -20,32 +20,23 @@ SPDX-License-Identifier: GPL-2.0-or-later */ // const double lut_d = 1966.74076381; /* Equation parameters for the sensor-magnet linearity mapping */ -// const double lut_a = 1; -// const double lut_b = 0.0061787; -// const double lut_c = 4.34; -// const double lut_d = 1935.43; - -const double lut_a = 0.00609446727442; -const double lut_b = 4.40340283615; -const double lut_c = 2000; +const double lut_a = -366.805673399; +const double lut_b = 0.00617870508512; +const double lut_c = -1.49468890703; +const double lut_d = 2094.38794157; uint16_t distance_to_adc(uint16_t distance) { - // double intermediate = lut_a * exp(lut_b * distance + lut_c) + lut_d; - double intermediate = ((-exp(lut_a*distance + lut_b)) + lut_c); - uint16_t adc = (uint16_t) MAX(0, MIN(intermediate, ADC_RESOLUTION_MAX -1)); - return adc; + double intermediate = lut_a * exp(lut_b * distance + lut_c) + lut_d; + return (uint16_t) fmax(0, fmin(intermediate, 4095)); } uint16_t adc_to_distance(uint16_t adc) { - // if (adc <= lut_c) { - // return 0; - // } - - // double intermediate = ((log((adc - lut_d) / lut_a)) - lut_c) / lut_b; - - double intermediate = ((log(lut_c-adc)-lut_b)/lut_a); - uint16_t distance = (uint16_t) MAX(0, MIN(intermediate, 400)); - return distance; + double check = (adc - lut_d) / lut_a; + if (check <= 0) { + return 0; + } + double intermediate = (log(check) - lut_c) / lut_b; + return (uint16_t) fmax(0, fmin(intermediate, 255)); } uint16_t lut[ADC_RESOLUTION_MAX] = {0}; diff --git a/keyboards/momokai/tap_trio_pro/matrix.c b/keyboards/momokai/tap_trio_pro/matrix.c index 71e18f043f1..aa96df6799f 100644 --- a/keyboards/momokai/tap_trio_pro/matrix.c +++ b/keyboards/momokai/tap_trio_pro/matrix.c @@ -213,10 +213,8 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { if (keys[current_row][0].is_analog == false) { matrix_read_cols_on_row(current_matrix, current_row); - - } - - else { + + } else { for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { hybrid_key_t *key = &keys[current_row][current_col]; diff --git a/keyboards/momokai/tap_trio_pro/scanfunctions.c b/keyboards/momokai/tap_trio_pro/scanfunctions.c index 02a698f6bcb..0a0e37a9b7c 100644 --- a/keyboards/momokai/tap_trio_pro/scanfunctions.c +++ b/keyboards/momokai/tap_trio_pro/scanfunctions.c @@ -13,8 +13,8 @@ void get_sensor_offsets(void) { for (uint8_t i = 0; i < MATRIX_ROWS; i++) { for (uint8_t j = 0; j < MATRIX_COLS; j++) { if (keys[i][j].is_analog) { - keys[i][j].offset = rest_adc_value - analogReadPin(matrix_pins[i][j]); - printf("Offset: %d\n", keys[i][j].offset); + keys[i][j].offset = rest_adc_value - analogReadPin(matrix_pins[i][j]); + printf("Offset: %d\n", keys[i][j].offset); } } }