Показать сообщение отдельно
06.03.2019, 12:35   #25
jam

Продвинутый
 
Аватар для jam
 
Адрес: г. Красноярск
Авто: VR-4 Type-V, 1999, MT, Recaro, EVO VI style
Имя: Andrew
Сообщений: 1,016




По умолчанию

да, например слово (WORD) - это два байта, т.е. если целочисленное и без знака то от 0 до 65535 (65536 значений). А у байта - 0..255. Маловато. Выкрутились таким образом что многие значение делились на какое-то число (грубое объяснение), а потом на стороне логгера восстанавливались.
Например для передачи по мут значение AirFlow (Hz) делилось, записывалось в один байт, а на стороне логгера считалось по формуле 6.25*x, что не очень точно и имеет ограничение в 1593. На стороне же компа значение 2х-байтное, без ограничений и лежит в другой ячейке памяти.

Цитата:
ROM:219AC mov:g.w r0, @0xF0FC:16
ROM:219B0 mov:g.w #0x40, @-sp ! '@'
ROM:219B3 mov:g.w @0xF0FC:16, r0 ! 2byte Air flow Hz
ROM:219B7 mov:g.w r0, @-sp
ROM:219B9 pjsr sub_1412B:24 ! 0xF0FC, 0x40
ROM:219BD adds.b #4:8, sp
ROM:219C0 mov:g.w r0, @-sp
ROM:219C2 pjsr sub_1442D:24 ! check limit for 1 byte
ROM:219C6 add:q.w #2, sp
ROM:219C8 mov:g.w r0, @0xF0FA:16 ! Air frow Hz (1 byte)
в 0xF0FA у нас уже переделанное значание для мута, а в 0xF0FC оригинальное, которое можно передать только двумя байтами 0xF0FC и 0xF0FD, совместив по OR (логическое ИЛИ) (1байт << 8) | (2байт & 0x00FF)
__________________
EC5A + EC5W
jam вне форума Ответить с цитированием Перейти в начало страницы