Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 92
1

Использование калибровочных таблиц

03.12.2013, 23:08. Показов 3906. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, уважаемое сообщество.
Есть такая задача: разрабатывается устройство на STM32. На вход принимает какое то числовое значение. Далее, согласно таблице, находит наиболее близкое значение и получает коэффициент, соответствующий этому значению. Выполняет с ним действия и возвращает результат.

Вопрос: как более грамотно организовать хранение этой таблицы (где) и какой формат выбрать, если учесть, что будет около 400 строк по 3 колонки (ну это если представить в виде реальной таблицы).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2013, 23:08
Ответы с готовыми решениями:

Связь таблиц в Workbanch и использование таблиц
Создана БД в Access, после при помощи Access to MySQL создан дамп таблиц и переведен в SQL, нужно...

Использование данных из таблиц
Допустим имеется таблица номер один, которую будет заполнять человек и имеется таблица номер два,...

Использование хеш таблиц
Помогите пожалуйста. Нужно создать телефонный справочник (по фамилии и/или имени и/или отчеству...

Использование таблиц из другой БД
Добрый вечер, нужно с помощью запроса добавить таблицу из другой базы данных в текущую базу. Я в...

Использование каскадных таблиц стилей
Стилевые файлы - "CSS" 1)Откройте text.htm(вложения) 2)Создайте в той же папке стилевой файл...

12
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
03.12.2013, 23:34 2
Цитата Сообщение от thiKyttir
как более грамотно организовать хранение этой таблицы (где) и какой формат выбрать, если учесть, что будет около 400 строк по 3 колонки (ну это если представить в виде реальной таблицы).
Раз табличные данные неизменные, то таблица должна храниться в ПЗУ (ROM).
В виде линейного массива[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
Не совсем неизменны, но меняться будут крайне редко и должны меняться конечным пользователем с ПК.
То есть при смене прошивки . Однозначно в ROM ...
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
В общем случае упорядоченный массив 400х3, двоичный поиск строки за максимум 9 сравнений.

Если интервалы равномерны, то возможны разные эвристики.

Например таблица:

Х К
0 ...
10 ...
20 ...
30 ...
40 ...

то очевидно, что номер строки = X/10 находится за одну операцию
Интервалы будут равномерными. Значение может быть например 12. Тогда мне надо выбрать ближайшее сверху и ближайшее снизу (т.е. 10 и 20). Не совсем понял что означает запись Х/10?
0
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
04.12.2013, 00:31 8
Цитата Сообщение от thiKyttir
Интервалы будут равномерными. Значение может быть например 12. Тогда мне надо выбрать ближайшее сверху и ближайшее снизу (т.е. 10 и 20). Не совсем понял что означает запись Х/10?
эээ. А мы на каком языке пишем? :) В си - деление. Если целое на целое - то в результате тоже целое

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
Вопрос больше в том, что если хранить в пзу, то каждый раз идут обращения. Нет смысла считать при старте в озу? Или это будет разговор в пользу бедных?
Глобально разницы не будет - Ftosh шире шина (128 бит), но есть woytstates, sram - наоборот. Попробовать.
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
Вопрос больше в том, что если хранить в пзу, то каждый раз идут обращения. Нет смысла считать при старте в озу?
Даже если в ОЗУ, то специально считывать в него из ROM не надо. Достаточно объявить массив без атрибута "const" и сразу при объявлении дать инициализацию массива. Тогда stort-upный код сам считает данные из ROM и поместит в ROM.
0
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 92
04.12.2013, 12:07 13
Спасибо за совет! Так думаю и сделаю.
Спасибо большое всем откликнувшимся! Очень приятно находится на форуме с отзывчивыми и грамотными людьми)
0
04.12.2013, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2013, 12:07
Помогаю со студенческими работами здесь

SQL запрос использование 2-х таблиц
Парни помогите понять в чем ошибка Мне нужно Найти Из Таблицы Договор по Коду_Договора, Код_Услуги...

Использование всех возможностей адаптивных таблиц
Добрый день. Посмотрел сайт http://css-tricks.com/responsive-data-tables/ , скачал код. Но в нем...

Использование псевдонимов таблиц в запросе к БД Mysql
При запросе к БД MYSQL выдает сообщение: #1305 - FUNCTION table1.Code_pgroup does not exist ...

Использование вложенных таблиц. PLS-00382
Использую вложенную таблицу для сохранения полученных расчетов. создается объект obj_word CREATE...

Одновременное использование таблиц в разных сессиях
Добрый день! Нужен совет... Суть проблемы: Есть таблица диапазонов -diap. В ней два поля id(id...

Использование в форме данных и нескольких таблиц
Здравствуйте. Помогите доделать задание. В Формах Медкарта и Посещение пациентов используются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru