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

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

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

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

andrewproffi писал(а):может быть надо учитывать еще адрес устройства - B5

Да, хоть так, хоть так, сам проверь, я же дал ссылки... че там - байты покрутить...
andrewproffi писал(а):сисадмином на пивзаводе
Ну да, ему пиво, а мне х... хотя я уже все выполнил...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

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

Сообщение Вячеслав (Вячеслав) » 16 сен 2017, 04:51

Здесь пример, поможет?
http://embedded.ifmo.ru/embedded_old/ET ... rc/crc.htm
Аватар пользователя
Ник: Вячеслав
Имя: Вячеслав
(Саратов)
Супер разработчик
Супер разработчик
Информация о пользователе

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

Сообщение andrewproffi (Андрей) » 16 сен 2017, 05:20

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

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

Сообщение andrewproffi (Андрей) » 16 сен 2017, 16:22

нифига не понятно.
такая формула для расчета CRC байта верна
Код: выделить все
FCV_CRC ^= FCV_DATA1;
        for (i = 0; i < 8; i++)
{
  FCV_CRC = (FCV_CRC & (1<<7)) ? ((FCV_CRC << 1) ^ 0x07) : (FCV_CRC << 1);
}

но как получить CRC для двух байт? ставил 2 формулы последовательно, менял местами дата1 дата2, присваивал значение CRC в начале 0 и FF. полученное значение не совпадает с суммой полученной от датчика.
или надо сделать integer и для него считать сумму?
подскажите кто разбирается :hlp:
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

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

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

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

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

Сообщение Вячеслав (Вячеслав) » 18 сен 2017, 05:11

andrewproffi писал(а):разобрался

Тернарную условную операцию не нашёл в описании компилятора BoostC. Ущербность компилятора?
Аватар пользователя
Ник: Вячеслав
Имя: Вячеслав
(Саратов)
Супер разработчик
Супер разработчик
Информация о пользователе
Вернуться наверх

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

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

Вячеслав писал(а): Тернарную условную операцию не нашёл

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

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

Сообщение Volume (Евгений) » 15 авг 2018, 09:39

Volume писал(а):Здравствуйте.
Подскажите, как применить команду "ADC (Сложение с переносом)" для PIC контроллера. FC5, компилятор BoostC.


Пришло время ответить на свой вопрос:
За переполнением следит bit "C" (STATUS <0>)
При выполнении операций: сложения, вычитания, сдвиг влево, сдвиг вправо.
Аватар пользователя
Ник: Volume
Имя: Евгений
(Иркутск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

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

Сообщение Вячеслав (Вячеслав) » 12 фев 2020, 09:31

Это вопрос. В чужой программе передачи данных обнаружил такой подсчет CRC-8:
контрольная сумма по байтам.jpg

Откуда взяты постоянные числа для операций XOR?
В алгоритме:
crc -байт контрольной суммы (изначально -0 или crc обработки предыдущего байта сообщения). Используется аккумулятор, куда пишется очередной передаваемый (принятый) байт сообщения, контрольную сумму которого считаем.
- Далее (по картинке -первая строка) идет операция XOR между аккумулятором и crc (это 0 или crc предшествующего байта такого же вычисления ). Результат пишем в crc.
- Очистил аккумулятор.
- Анализ 7-го бита crc (третья строка рисунка): если это 0, то пропуск следующей строки - иначе XOR с постоянной 0х7А. Запись результата в аккумулятор.
- Далее идут аналогичные действия с 6-го бита по 0 переменной crc с разными постоянными числами.
- Результат операций записан в crc.
Обычно используют полином. Здесь - числа, любопытно узнать откуда? До автора мне не достучаться, а здесь люди свои. Если пошлют, то не далеко. :)
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Вячеслав
Имя: Вячеслав
(Саратов)
Супер разработчик
Супер разработчик
Информация о пользователе
Вернуться наверх

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

Сообщение andrewproffi (Андрей) » 12 фев 2020, 11:37

Вячеслав писал(а):а здесь люди свои. Если пошлют, то не далеко. :)

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

Пред.След.

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

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

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

cron