0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 92
|
|
1 | |
Использование калибровочных таблиц03.12.2013, 23:08. Показов 3906. Ответов 12
Метки нет (Все метки)
Здравствуйте, уважаемое сообщество.
Есть такая задача: разрабатывается устройство на STM32. На вход принимает какое то числовое значение. Далее, согласно таблице, находит наиболее близкое значение и получает коэффициент, соответствующий этому значению. Выполняет с ним действия и возвращает результат. Вопрос: как более грамотно организовать хранение этой таблицы (где) и какой формат выбрать, если учесть, что будет около 400 строк по 3 колонки (ну это если представить в виде реальной таблицы).
0
|
03.12.2013, 23:08 | |
Ответы с готовыми решениями:
12
Связь таблиц в Workbanch и использование таблиц Использование данных из таблиц Использование хеш таблиц Использование таблиц из другой БД Использование каскадных таблиц стилей |
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
03.12.2013, 23:34 | 2 |
Сообщение от thiKyttir
В виде линейного массива[400*3] или двумерного массива[400][3].
0
|
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 92
|
|
03.12.2013, 23:48 | 3 |
Не совсем неизменны, но меняться будут крайне редко и должны меняться конечным пользователем с ПК.
0
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
03.12.2013, 23:51 | 4 |
Сообщение от thiKyttir
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
03.12.2013, 23:53 | 5 |
В общем случае упорядоченный массив 400х3, двоичный поиск строки за максимум 9 сравнений.
Если интервалы равномерны, то возможны разные эвристики. Например таблица: Х К 0 ... 10 ... 20 ... 30 ... 40 ... то очевидно, что номер строки = X/10 находится за одну операцию
0
|
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 92
|
|
03.12.2013, 23:55 | 6 |
Почему при смене? Прошивка остается - калибровочные данные меняются.
А читать их, кстати, придется не менее 20 раз в секунду...
0
|
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 92
|
|
04.12.2013, 00:00 | 7 |
Сообщение от Stiit.mi
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
04.12.2013, 00:31 | 8 |
Сообщение от thiKyttir
X=12 X/10 = 1, значит между строками 1 и 2 (соответственно 10 и 20) Если будет возможность, то выбрать интервалы кратные степени двойки (через 8 или 16 и т.д.), тогда деление на 8 или 16 можно заменить сдвигом на соответствующее число бит вправо, что благоприятней скажется на скорости выполнения.
0
|
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 92
|
|
04.12.2013, 00:43 | 9 |
Понял о чем Вы... Протупил я)))
Вопрос больше в том, что если хранить в пзу, то каждый раз идут обращения. Нет смысла считать при старте в озу? Или это будет разговор в пользу бедных?
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
04.12.2013, 01:03 | 10 |
Сообщение от thiKyttir
0
|
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 92
|
|
04.12.2013, 01:31 | 11 |
Спасибо.
0
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
04.12.2013, 11:27 | 12 |
Сообщение от thiKyttir
0
|
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 92
|
|
04.12.2013, 12:07 | 13 |
Спасибо за совет! Так думаю и сделаю.
Спасибо большое всем откликнувшимся! Очень приятно находится на форуме с отзывчивыми и грамотными людьми)
0
|
04.12.2013, 12:07 | |
04.12.2013, 12:07 | |
Помогаю со студенческими работами здесь
13
SQL запрос использование 2-х таблиц Использование всех возможностей адаптивных таблиц Использование псевдонимов таблиц в запросе к БД Mysql Использование вложенных таблиц. PLS-00382 Одновременное использование таблиц в разных сессиях Использование в форме данных и нескольких таблиц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |