Помощь по математическим расчётам

Раздел начинающих пользователей
Правила форума
В песочнице можно спрашивать когда незнаешь где спросить.
В песочнице нелзя посылать в гугл
В песочнице можно задавать любой вопрос, но на него могут и неответить.
Песочница для тех, кто начинает свои вопросы с защиты чайников от пинков.
В песочницу будут перетаскиваться вопросы неполучившие ответа.
Песочница - попытка навести порядок.
На песочницу большие надежды.

Re: Помощь по математическим расчётам

Сообщение Volume (Евгений) » 23 июн 2017, 07:35

Благодарю за помощь! :oops:
Полиномы для меня это вынос мозга(
Аватар пользователя
Ник: Volume
Имя: Евгений
(Иркутск)
Заинтересованный
Заинтересованный
Информация о пользователе

Re: Помощь по математическим расчётам

Сообщение andrewproffi (Андрей) » 15 июл 2017, 07:44

Приветствую! подскажите если можете. в чем проблема? :headbang:
в блоке математических расчетов при нажатой кнопке увеличения температуры, преобразование останавливается на значении около 32.3. симуляция в флоукоде проходит нормально, в протеусе и в железе есть этот дефект...
вообще мне нужно к переменной типа float прибавлять или убавлять по одной десятой ровно. почему то в определенный момент (если просто к переменной типа float прибавлять или убавлять 0,1) в переменной появляется неточность, например 20,1 20,2 20,29
я решил избавится от этой проблемы путем преобразования в целочисленное, может есть другой вариант или способ устранить неточность?
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Разработчик
Разработчик
Информация о пользователе

Re: Помощь по математическим расчётам

Сообщение Vovan_G5 (Владимир) » 15 июл 2017, 15:12

загадка. Уходи ты от этих флоат совсем
Ник: Vovan_G5
Имя: Владимир
(Харьков)
Консультант
Консультант
Информация о пользователе
Вернуться наверх

Re: Помощь по математическим расчётам

Сообщение Yushik (Андрей) » 15 июл 2017, 17:10

Да действительно загадка, проблема скорее скрыта где-то в недрах компилятора или фловкода. С целочисленными получается без проблем, как только пытаешься втюхать флоат вылазиет эта проблема. Если пораскинуть мозгами устранить эту погрешность может и возможно, но цена работы с флоат вылезет в немалые объёмы кода программ и ресурсы контроллера. Вот и думайте чем пожертвовать.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Специалист
Специалист
Информация о пользователе
Вернуться наверх

Re: Помощь по математическим расчётам

Сообщение andrewproffi (Андрей) » 16 июл 2017, 04:41

вроде память в МК пока позволяет себя не ограничивать, ну ладно, буду пробовать без float делать, хотя так сложнее (
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: Помощь по математическим расчётам

Сообщение andrewproffi (Андрей) » 15 сен 2017, 08:06

Здравствуйте, неразрешимая задача, КТН программист бьется вторые сутки :)
с датчика приходит два байта данных и их контрольная сумма рассчитываемая по формуле X8+X2+X1+1.
вопрос: КАК ЭТУ ХРЕНЬ ПОСЧИТАТЬ? то есть мне нужна формула по которой эту CRC можно посчитать
пример данных с датчика
Код: выделить все
137  57  162
137  57  162
135  57  116
135  57  116
134  57  97
134  57  97
134  57  97


мои потуги в этом направлении:
Код: выделить все
uint8_t i=0;
FCV_CRC = 0x00;

FCV_CRC ^= FCV_DATA1;
        for (i = 0; i < 8; i++)
{
  FCV_CRC = (FCV_CRC & (1<<7)) ? ((FCV_CRC << 1) ^ 0x07) : (FCV_CRC << 1);
}

FCV_CRC ^= FCV_DATA2;
        for (i = 0; i < 8; i++)
{
  FCV_CRC = (FCV_CRC & (1<<7)) ? ((FCV_CRC << 1) ^ 0x07) : (FCV_CRC << 1);
}
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: Помощь по математическим расчётам

Сообщение mim (mim) » 15 сен 2017, 09:22

andrewproffi писал(а):мои потуги в этом направлении:
Совпадает????
:)
Это называется CRC-8-CCITT
Тыц, тыц, тыц
Крайний это табличный способ, также как One Wire (смотри исходник), но у Далласа другой полином (поэтому другая таблица)...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Помощь по математическим расчётам

Сообщение andrewproffi (Андрей) » 15 сен 2017, 09:50

mim писал(а):
andrewproffi писал(а):мои потуги в этом направлении:
Совпадает????
:)


не совпадает... или я не понимаю какие числа использовать, пробовал по разному.
не хотелось бы использовать таблицу
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: Помощь по математическим расчётам

Сообщение mim (mim) » 15 сен 2017, 09:58

Начнем с того что твои данные
Код: выделить все
137  57  162
137  57  162
135  57  116
135  57  116
134  57  97
134  57  97
134  57  97
не соответствуют истине если это данные 137 57, а это сумма 162

Все остальное я тебе дал и у меня все работает... А КТНа уволь...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Помощь по математическим расчётам

Сообщение andrewproffi (Андрей) » 15 сен 2017, 10:03

КТН мне не подчиняется и работает сисадмином на пивзаводе, так что ему на все по :o
137 - младшие 8 бит
57- старшие 8 бит в десятичной форме
162 - CRC посчитанная датчиком в десятичной форме.
может быть надо учитывать еще адрес устройства - B5
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Пред.След.

Вернуться в ПЕСОЧНИЦА

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей