Как применить формулу к последовательности байт?

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

Как применить формулу к последовательности байт?

#21

Сообщение Labu559 » 06.10.2018{, 14:12}

Отправлено спустя 3 минуты 28 секунд:
Sancho писал(а):
06.10.2018{, 14:04}
ты подал не в том порядке - сверху младшие, снизу старшие...
Это не я подал
ElectroMechaniC писал(а):
05.10.2018{, 10:40}
мне нужно применить к ней формулу
(1.0*(10*((A*16777216+B*65536+C*256+D)&268435455)))/1000
ElectroMechaniC писал(а):
05.10.2018{, 11:48}
последовательность такова A-7F: B-22: C-12: D-(предположительно) 00.
Labu559 писал(а):
05.10.2018{, 11:49}
Если я правильно Вас пронял, и "7F" это "А" в Вашей формуле; B==0x22 ; C==0x12, то в таком случае
Если я правильно пронял, изв.понял ,всё продано, извините подано до меня.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как применить формулу к последовательности байт?

#22

Сообщение Sancho » 06.10.2018{, 15:19}

Labu559, Василий, в таком случае ты дёргаешь "D" 127/255, на 3 плате с моим блоком. самые незначащие в формуле.
Labu559 писал(а):
05.10.2018{, 20:17}
И ещё,
Sancho писал(а): ↑Вчера [12:33]
Эта операция уберёт четыре старших бита в числе, 32 битном.
которые всегда, при любом значении А будут == 0, и после чего не влезают ещё 4 старших бита этого же А при значениях больше 127 (0xF). Может тогда есть смысл облегчить страдания Arduino и вставить строку if (A>0xF) A=0xF;
Нет, это не одно и тоже. Например, 134, оно более 0xF, но младшие 4 бита совсем другие, чем у 0xF, соответственно, и результат будет иным. А побитовые операции для ардуинки - как "с добрым утром" проходят, в отличии от последующих /100,0

У меня осталась привычка от обозначения советской логики - сверху младшие разряды, снизу старшие, что вход, что выход.
СпойлерПоказать
2018-10-06_15-10-25.png
2018-10-06_15-10-25.png (8.38 КБ) 557 просмотров
Так и делаю на своих блоках.

Отправлено спустя 5 минут 9 секунд:
Я думаю, что &268435455 - это делитель на 16 кругов одометра - тебе не видно, а ЭБУ всё знает! :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

Как применить формулу к последовательности байт?

#23

Сообщение Labu559 » 06.10.2018{, 15:41}

Sancho писал(а):
06.10.2018{, 15:19}
в таком случае
Да я уже и сам заметил, и на 4-й плате тоже. Поставил как нужно, теперь твои результаты совпадают с моими полностью. Вопрос не снят с повестки дня о значениях переменной byte А(127/255) или в unsigned long 127255255255 и 255255255255 которые в итоге дают одинаковый float на выходе 2684354,5.

Отправлено спустя 2 минуты 58 секунд:
Sancho писал(а):
06.10.2018{, 15:24}
делитель на 16 кругов одометра - тебе не видно
понял теперь, так это сдвиг вправо надо делать на 4 позиции а не & 268435455 в таком случае, или все сдвиги влево минусовать на 4 позиции а переменную D убрать 4 младших бита (не полных 10 метров?).
value = ((A|0UL)<<20)+((B|0UL)<<12)+((C|0UL)<<4)+(D>>4);
value = (((A|0UL)<<24)+((B|0UL)<<16)+((C|0UL)<<8)+D)>>4;
Ув. ElectroMechaniC, Попробуйте теперь
этот блок из проектаПоказать
MechanicFinal.flp
(84.38 КБ) 38 скачиваний
на этом моя буйная фантазия и время исчерпались. Всем извините!
Вложения
FullTestFloat.flp
Исправлена 3 и 4 плата порядок байтов.
(337.06 КБ) 46 скачиваний
Последний раз редактировалось Labu559 06.10.2018{, 16:39}, всего редактировалось 3 раза.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как применить формулу к последовательности байт?

#24

Сообщение Sancho » 06.10.2018{, 16:11}

Labu559, Нет, Василий. Это 16 кругов одометра! А внутри ЭБУ всё считается!
Исходник

Отправлено спустя 3 минуты 57 секунд:
Labu559 писал(а):
06.10.2018{, 15:44}
2684354,5
км. Это ещё нужно проехать, хотя-бы за жизнъ :)

Отправлено спустя 29 минут 18 секунд:
Померла нанка - не загружается :( протёрлась, наверно :)
dizzyy писал(а):
06.10.2018{, 16:53}
попробуй бутлоадер залить.. у меня часто слетает при тестах
Позже...

Отправлено спустя 7 минут 48 секунд:
Проверил в протеусе. Подавал значения от 0 и ++. Работают только четыре младшие бита. Далее по кругу.

Отправлено спустя 51 секунду:
Тестовый пример.
Вложения
FullTestFloat_1.flp
(131.18 КБ) 52 скачивания
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как применить формулу к последовательности байт?

#25

Сообщение Sancho » 06.10.2018{, 16:56}

Оставил все биты - то-же...
т.е. 28 бит макс? получается да.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Как применить формулу к последовательности байт?

#26

Сообщение AlexCrane » 06.10.2018{, 18:16}

Labu559, Sancho, Пока генералы спорят... я :smile225:
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как применить формулу к последовательности байт?

#27

Сообщение Sancho » 06.10.2018{, 19:23}

AlexCrane, И я уже "вляпался" в субботницу....
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Как применить формулу к последовательности байт?

#28

Сообщение AlexCrane » 06.10.2018{, 19:53}

Sancho,
OfftopicПоказать
:buhnut:
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

Как применить формулу к последовательности байт?

#29

Сообщение Labu559 » 06.10.2018{, 23:38}

Sancho писал(а):
06.10.2018{, 16:53}
Работают только четыре младшие бита. Далее по кругу.
Sancho писал(а):
06.10.2018{, 16:56}
т.е. 28 бит макс? получается да.
Саша, ну конечно, и я о том-же в 4-м, в 13-м, в 15-м показываю в проекте, в 17-м, в 19-м опять показываю, в 23-м, толкую и так и сяк и эдак- не влазит больше! Вот не зря евреи в суботу отдыхают. :smile160:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как применить формулу к последовательности байт?

#30

Сообщение Sancho » 07.10.2018{, 07:35}

Labu559, Василий - осознал сам. Вкурил, впил так сказать.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21.09.2016{, 06:50}
Репутация: 1
Откуда: Донецк
Имя: Юрий

Как применить формулу к последовательности байт?

#31

Сообщение ElectroMechaniC » 07.10.2018{, 22:54}

Получается каша! В итоге из этой формулы должно получиться Dec==29587.61(для ясности :км), это мой реальный пробег на щитке), а по примерам фуйня муйня выходит))) чёт не клеится))) извините за громкие(замаскированные) слова!
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как применить формулу к последовательности байт?

#32

Сообщение Sancho » 08.10.2018{, 08:53}

ElectroMechaniC, Какие байты(набор) при этих показаниях получаешь?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21.09.2016{, 06:50}
Репутация: 1
Откуда: Донецк
Имя: Юрий

Как применить формулу к последовательности байт?

#33

Сообщение ElectroMechaniC » 08.10.2018{, 12:31}

Sancho, 21329392.00 приходит((((((((((

Отправлено спустя 34 секунды:
Вроде бы где то и рядом но не то(((
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как применить формулу к последовательности байт?

#34

Сообщение Sancho » 08.10.2018{, 12:50}

ElectroMechaniC, Нет, я о байтах, какой набор в формате Нех.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21.09.2016{, 06:50}
Репутация: 1
Откуда: Донецк
Имя: Юрий

Как применить формулу к последовательности байт?

#35

Сообщение ElectroMechaniC » 08.10.2018{, 12:53}

Sancho, немного не въеду о чём речь,ведь мне то по формуле как раз в десятичное число и нужно.... Я просто не пойму. объясни пожалуйста что сделать и я попробую..
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как применить формулу к последовательности байт?

#36

Сообщение Sancho » 08.10.2018{, 13:44}

ElectroMechaniC, я о байтах, которые подаёшь на блок. Входные данные для формулы.

Отправлено спустя 38 секунд:
И какие показания одометра в этот момент.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Ответить

Вернуться в «Спросить у знатоков»