расчет контрольной суммы (требуется помощь)

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
roman.com
Друг Кота
Сообщения: 9153
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: расчет контрольной суммы (требуется помощь)

Сообщение roman.com »

uint16_t DoCheckSum — функция, которая рассчитывает контрольную сумму блока данных.
замечательно))
а где остальной код программы на СИ ?
:tea:

можно и Ada...
но сначала на СИ... )) у нас уже есть кусок кода на СИ.
потом переделаем на Ada...
:tea:
Реклама
o90
Встал на лапы
Сообщения: 114
Зарегистрирован: Сб авг 09, 2025 22:19:34

Re: расчет контрольной суммы (требуется помощь)

Сообщение o90 »

[uquote="roman.com",url="/forum/viewtopic.php?p=4743046#p4743046"]uint16_t DoCheckSum — функция, которая рассчитывает контрольную сумму блока данных.
замечательно))
а где остальной код программы на СИ ?
:tea:
а это ....
Код:
uint16_t DoCheckSum( uint8_t *Buf, uint16_t Size )
{ // Локальные переменные
uint16_t Cnt,Sum,Tmp1,Tmp2;
// Инит
Sum = 0; Tmp1 = 0; Tmp2 = 0;
// Если размер больше 0
if (Size > 0)
{ // Цикл расчёта
Cnt = 0;
while (Cnt < Size)
{ // Tmp1
Tmp1 += *(Buf); if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
// Sum
Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }
// Следующий байт
Buf++; Cnt++;
}
// Финализация
Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
Tmp1 ^= 0x00FF;
Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00);
}
// Результат
return Sum;
}
Последний раз редактировалось o90 Пн сен 01, 2025 22:13:36, всего редактировалось 2 раза.
Реклама
Аватара пользователя
HardWareMan
Мучитель микросхем
Сообщения: 431
Зарегистрирован: Ср сен 02, 2015 07:47:20

Re: расчет контрольной суммы (требуется помощь)

Сообщение HardWareMan »

Барсик! Нужно писать на Барсике!
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 22 апреля 2026 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.
/!\ Обновлений для STM32PowerMon и STM32PowerMon-UCPD временно не будет.
roman.com
Друг Кота
Сообщения: 9153
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: расчет контрольной суммы (требуется помощь)

Сообщение roman.com »

что такое программа ? ))
программа это код который должен кто-то прочитать и выполнить))

одна функция есть... осталось написать остальную часть программы... и где то её запустить.. и проверить как она работает...
ну запустим в браузере.. .чтоб далеко не ходить)) браузер понимает СИ.
потом перенесём куда угодно... СИ работает везде))
:tea:
пишем для браузера...

Код: Выделить всё

<!DOCTYPE html>
<html>
<head>
<title>КС</title>
<h1>Расчёт КС:</h1>
</head>
<body>


</body>
</html>
копируем в файл с расширением .html запускаем и смотрим...

Изображение

браузер прочитал наш код и выполнил.
:tea:

ну вот)) начало уже есть))
:tea:

можно и BARSIC.
говорю же... пофигу на чём писать))
:tea:
Вложения
Screenshot_1.jpg
(20.24 КБ) 284 скачивания
Реклама
Эиком - электронные компоненты и радиодетали
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: расчет контрольной суммы (требуется помощь)

Сообщение Nranddek »

[uquote="roman.com",url="/forum/viewtopic.php?p=4743060#p4743060"]говорю же... пофигу на чём писать))[/uquote]
Ок. МК-56
Реклама
o90
Встал на лапы
Сообщения: 114
Зарегистрирован: Сб авг 09, 2025 22:19:34

Re: расчет контрольной суммы (требуется помощь)

Сообщение o90 »

[uquote="roman.com",url="/forum/viewtopic.php?p=4743060#p4743060"]что такое программа ? ))
программа это код который должен кто-то прочитать и выполнить))

одна функция есть... осталось написать остальную часть программы... и где то её запустить.. и проверить как она работает...
ну запустим в браузере.. .чтоб далеко не ходить)) браузер понимает СИ.
потом перенесём куда угодно... СИ работает везде))
:tea:
пишем для браузера...

Код: Выделить всё

<!DOCTYPE html>
<html>
<head>
<title>КС</title>
<h1>Расчёт КС:</h1>
</head>
<body>


</body>
</html>
копируем в файл с расширением .html запускаем и смотрим...

Изображение

браузер прочитал наш код и выполнил.
:tea:

ну вот)) начало уже есть))
:tea:

можно и BARSIC.
говорю же... пофигу на чём писать))
:tea:[/uquote]

---------------------------------------------------------
ранеее
HardWareMan писал:
О какой программе речь? Изначальная задача была понять как считается контролька, я выдал прям готовое решение - копипастить в исходник и поехали. О какой программе теперь речь в теме про контрольку?
-----------------------------------------------------------
я полагал что это действительно готовое решение
Реклама
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: расчет контрольной суммы (требуется помощь)

Сообщение Nranddek »

Верно полагали. Функция абсолютно готова.
roman.com
Друг Кота
Сообщения: 9153
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: расчет контрольной суммы (требуется помощь)

Сообщение roman.com »

и где можно проверить как работает это "готовое решение" ?
в EXCEL ?)) с помощью EXCEL и калькулятора мы уже проверили... посчитали всё в ручную))
дальше что ?
:tea:
Nranddek писал(а):Ок. МК-56
ты уже определись наконец))

Добавлено after 9 minutes 16 seconds:
[uquote="Nranddek",url="/forum/viewtopic.php?p=4743066#p4743066"]Функция абсолютно готова.[/uquote]
мы рады)) осталось добавить функцию в программу... пишем скрипт... типа так...

Код: Выделить всё

<!DOCTYPE html>
<html>
<head>
<title>КС</title>
<h1>Расчёт КС:</h1>
</head>
<body>

<script>
////////////////////////////////////////////////////////////////////////////////
function DoCheckSum( uint8_t *Buf, uint16_t Size ){
// Локальные переменные
uint16_t Cnt,Sum,Tmp1,Tmp2;
// Инит
Sum = 0; Tmp1 = 0; Tmp2 = 0;
// Если размер больше 0
if (Size > 0)
{ // Цикл расчёта
Cnt = 0;
while (Cnt < Size)
{ // Tmp1
Tmp1 += *(Buf); if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
// Sum
Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }
// Следующий байт
Buf++; Cnt++;
}
// Финализация
Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
Tmp1 ^= 0x00FF;
Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00);
}
// Результат
return Sum;
};
////////////////////////////////////////////////////////////////////////////////
</script> 

</body>
</html>
только это в браузере нифига работать не будет... но это пока не важно))
:tea:
o90
Встал на лапы
Сообщения: 114
Зарегистрирован: Сб авг 09, 2025 22:19:34

Re: расчет контрольной суммы (требуется помощь)

Сообщение o90 »

[uquote="roman.com",url="/forum/viewtopic.php?p=4743068#p4743068"]и где можно проверить как работает это "готовое решение" ?
в EXCEL ?)) с помощью EXCEL и калькулятора мы уже проверили... посчитали всё в ручную))
дальше что ?
:tea:
Nranddek писал(а):Ок. МК-56
ты уже определись наконец))

Добавлено after 9 minutes 16 seconds:
[uquote="Nranddek",url="/forum/viewtopic.php?p=4743066#p4743066"]Функция абсолютно готова.[/uquote]
мы рады)) осталось добавить функцию в программу... пишем скрипт... типа так...

Код: Выделить всё

<!DOCTYPE html>
<html>
<head>
<title>КС</title>
<h1>Расчёт КС:</h1>
</head>
<body>

<script>
////////////////////////////////////////////////////////////////////////////////
function DoCheckSum( uint8_t *Buf, uint16_t Size ){
// Локальные переменные
uint16_t Cnt,Sum,Tmp1,Tmp2;
// Инит
Sum = 0; Tmp1 = 0; Tmp2 = 0;
// Если размер больше 0
if (Size > 0)
{ // Цикл расчёта
Cnt = 0;
while (Cnt < Size)
{ // Tmp1
Tmp1 += *(Buf); if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
// Sum
Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }
// Следующий байт
Buf++; Cnt++;
}
// Финализация
Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
Tmp1 ^= 0x00FF;
Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00);
}
// Результат
return Sum;
};
////////////////////////////////////////////////////////////////////////////////
</script> 

</body>
</html>
только это в браузере нифига работать не будет... но это пока не важно))
:tea:[/uquote]

непонятно
наши ДАННЫЕ Лога то куда ? что считать то будет.
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: расчет контрольной суммы (требуется помощь)

Сообщение Nranddek »

наверное, можно немного упростить:
C#:
Спойлер

Код: Выделить всё

public static ushort DoCheckSum(byte[] Buf, ushort Size)
{
    ushort Cnt = 0, Tmp1 = 0, Tmp2 = 0;
   
    if (Size == 0) { return 0; }

    while (Cnt < Size)
    {
        // Tmp1
        Tmp1 += Buf[Cnt++];
        if (Tmp1 > 0x00FE) {
            Tmp1 += 0xFF01;
        }
        // Sum
        Tmp2 += Tmp1;
        if (Tmp2 > 0x00FE) {
            Tmp2 += 0xFF01;
        }
    }

    // Финализация
    Tmp2 += Tmp1;
    if (Tmp2 > 0x00FE) {
        Tmp2 += 0xFF01;
    }
    Tmp2 ^= 0x00FF;

    Tmp1 += Tmp2;
    if (Tmp1 > 0x00FE) {
        Tmp1 += 0xFF01;
    }
    Tmp1 ^= 0x00FF;

    return (ushort)((Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00));
}
Добавлено after 4 minutes 2 seconds:
roman.com писал(а): Nranddek писал(а):
Ок. МК-56

ты уже определись наконец))
ладно, ладно, пусть будет MK-61, регистров побольше.
roman.com писал(а):говорю же... пофигу на чём писать))
не я это сказал ;)

Добавлено after 2 minutes 48 seconds:
Ха, ИИ написал для МК-61, в 92 шага уложился... Эх, уже плохо помню, чтобы проверить досконально, но на первый взгляд вроде правильно...
roman.com
Друг Кота
Сообщения: 9153
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: расчет контрольной суммы (требуется помощь)

Сообщение roman.com »

[uquote="o90",url="/forum/viewtopic.php?p=4743073#p4743073"]наши ДАННЫЕ Лога то куда ? что считать то будет.[/uquote]
обычно данные складываются в буфер... и соответственно считать будем КС для буфера.
Спойлер

Код: Выделить всё

<!DOCTYPE html>
<html>
<head>
<title>КС</title>
<h1>Расчёт КС:</h1>
</head>
<body>

<script>
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////Buf:  
var Buf = [  
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
];
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////CheckSum:
function DoCheckSum( uint8_t *Buf, uint16_t Size ){
// Локальные переменные
uint16_t Cnt,Sum,Tmp1,Tmp2;
// Инит
Sum = 0; Tmp1 = 0; Tmp2 = 0;
// Если размер больше 0
if (Size > 0)
{ // Цикл расчёта
Cnt = 0;
while (Cnt < Size)
{ // Tmp1
Tmp1 += *(Buf); if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
// Sum
Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }
// Следующий байт
Buf++; Cnt++;
}
// Финализация
Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
Tmp1 ^= 0x00FF;
Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00);
}
// Результат
return Sum;
};
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////CheckSum:
DoCheckSum(1); // вызываем функцию DoCheckSum
////////////////////////////////////////////////////////////////////////////////
</script> 

</body>
</html>
упростить можно до безобразия)) до голого ассемблера... дальше только машинные инструкции... ))
но для начала бы просто проверить работоспособность.
o90
Встал на лапы
Сообщения: 114
Зарегистрирован: Сб авг 09, 2025 22:19:34

Re: расчет контрольной суммы (требуется помощь)

Сообщение o90 »

[uquote="roman.com",url="/forum/viewtopic.php?p=4743079#p4743079"][uquote="o90",url="/forum/viewtopic.php?p=4743073#p4743073"]наши ДАННЫЕ Лога то куда ? что считать то будет.[/uquote]
обычно данные складываются в буфер... и соответственно считать будем КС для буфера.
Спойлер

Код: Выделить всё

<!DOCTYPE html>
<html>
<head>
<title>КС</title>
<h1>Расчёт КС:</h1>
</head>
<body>

<script>
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////Buf:  
var Buf = [  
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
];
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////CheckSum:
function DoCheckSum( uint8_t *Buf, uint16_t Size ){
// Локальные переменные
uint16_t Cnt,Sum,Tmp1,Tmp2;
// Инит
Sum = 0; Tmp1 = 0; Tmp2 = 0;
// Если размер больше 0
if (Size > 0)
{ // Цикл расчёта
Cnt = 0;
while (Cnt < Size)
{ // Tmp1
Tmp1 += *(Buf); if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
// Sum
Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }
// Следующий байт
Buf++; Cnt++;
}
// Финализация
Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
Tmp1 ^= 0x00FF;
Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00);
}
// Результат
return Sum;
};
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////CheckSum:
DoCheckSum(1); // вызываем функцию DoCheckSum
////////////////////////////////////////////////////////////////////////////////
</script> 

</body>
</html>
упростить можно до безобразия)) до голого ассемблера... дальше только машинные инструкции... ))
но для начала бы просто проверить работоспособность.[/uquote]
что то не так
только заголовок - Расчёт КС
roman.com
Друг Кота
Сообщения: 9153
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: расчет контрольной суммы (требуется помощь)

Сообщение roman.com »

есесно... только заголовок - Расчёт КС
потому что мы ещё не объяснили браузеру что мы от него хотим)) поэтому браузер и не понял...
а браузер выполняет только ту часть кода которую он понимает - заголовок - Расчёт КС

это только начало программы... ))
как сказал ВВП... "мы ещё даже не начинали !"
:)))
o90
Встал на лапы
Сообщения: 114
Зарегистрирован: Сб авг 09, 2025 22:19:34

Re: расчет контрольной суммы (требуется помощь)

Сообщение o90 »

[uquote="roman.com",url="/forum/viewtopic.php?p=4743086#p4743086"]есесно... только заголовок - Расчёт КС
потому что мы ещё не объяснили браузеру что мы от него хотим)) поэтому браузер и не понял...
а браузер выполняет только ту часть кода которую он понимает - заголовок - Расчёт КС

это только начало программы... ))
как сказал ВВП... "мы ещё даже не начинали !"
:)))[/uquote]
...ну да , и " поставленные задачи ....будут выполнены"
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3482
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: расчет контрольной суммы (требуется помощь)

Сообщение smacorp »

Да пожалейте же гривножуя! BARSIK, MК-56, МК-61, голый ассемблер, html для браузера... Вы ведь понимаете, что после каждого такого сообщения, у ТС сначала всплеск радости "Ура, наконец-то!", потом дымление клавиатуры и нагрузка на поисковик "Что это, как это?!", а потом кипение извилин "Почему снова не работает?! Бензин есть, а куда ЛОГ вставлять?!"

А тут ещё цитаты ВВП- гривножуя же идиосинкразия замучает!

И снова недвусмысленный намёк для оного - как только Вы опубликуете что именно и для чего Вам нужно, как это должно работать, какие задачи (без шахмат!) выполнять - то есть что-то, что можно принять хотя бы в первом приближении за ТЗ, наверняка найдётся кто-то, кто это реализует.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
roman.com
Друг Кота
Сообщения: 9153
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: расчет контрольной суммы (требуется помощь)

Сообщение roman.com »

:))
мы просто проверяем как работает на функция...))

глянем буфер...
Спойлер

Код: Выделить всё

<!DOCTYPE html>
<html>
<head>
<title>КС</title>
<h2>Расчёт КС:</h2>
</head>
<body>


<script>
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////Buf:  
//лог 1B 02 04 DE 00 00 00 С0 7Е
var Buf = [  
0x1B, 0x02, 0x04, 0xDE, 0x00, 0x00, 0x00,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
];
//выдаёт КС: С0 7Е
var String;            
var xK = 0;
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////CheckSum:
/*
function DoCheckSum( uint8_t *Buf, uint16_t Size ){
// Локальные переменные
uint16_t Cnt,Sum,Tmp1,Tmp2;
// Инит
Sum = 0; Tmp1 = 0; Tmp2 = 0;
// Если размер больше 0
if (Size > 0)
{ // Цикл расчёта
Cnt = 0;
while (Cnt < Size)
{ // Tmp1
Tmp1 += *(Buf); if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
// Sum
Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }
// Следующий байт
Buf++; Cnt++;
}
// Финализация
Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
Tmp1 ^= 0x00FF;
Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00);
}
// Результат
return Sum;
};
*/
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////наверное, можно немного упростить:
/*
public static ushort DoCheckSum(byte[] Buf, ushort Size)
{
    ushort Cnt = 0, Tmp1 = 0, Tmp2 = 0;
   
    if (Size == 0) { return 0; }

    while (Cnt < Size)
    {
        // Tmp1
        Tmp1 += Buf[Cnt++];
        if (Tmp1 > 0x00FE) {
            Tmp1 += 0xFF01;
        }
        // Sum
        Tmp2 += Tmp1;
        if (Tmp2 > 0x00FE) {
            Tmp2 += 0xFF01;
        }
    }

    // Финализация
    Tmp2 += Tmp1;
    if (Tmp2 > 0x00FE) {
        Tmp2 += 0xFF01;
    }
    Tmp2 ^= 0x00FF;

    Tmp1 += Tmp2;
    if (Tmp1 > 0x00FE) {
        Tmp1 += 0xFF01;
    }
    Tmp1 ^= 0x00FF;

    return (ushort)((Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00));
}
*/
////////////////////////////////////////////////////////////////////////////////
</script>



<!-----------------------------label------------------------------------------->
<div id='label' 
style='position: absolute; left: 0px; top: 100px; width: 970px; height: 0px;
font-size: 30px; color: #000000; background: #1CD3A2;'>Buf:</div> 
<script>var label = document.getElementById('label');</script>




<script>
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////DoCheckSum:
//DoCheckSum();  
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////HEX(int)> LCD(String): 
var bi = 0;
function LCD_HEX(bi) { 
///////////////////
bi &= 0xFF;
var z = 0;
var HEX = "";  
///////////////////
z=0; while (bi>15) {z++; bi=bi-16;};     
if (z==0)  {HEX = "0";} if (z==1)  {HEX = "1";} if (z==2)  {HEX = "2";} if (z==3)  {HEX = "3";}
if (z==4)  {HEX = "4";} if (z==5)  {HEX = "5";} if (z==6)  {HEX = "6";} if (z==7)  {HEX = "7";}
if (z==8)  {HEX = "8";} if (z==9)  {HEX = "9";} if (z==10) {HEX = "A";} if (z==11) {HEX = "B";}
if (z==12) {HEX = "C";} if (z==13) {HEX = "D";} if (z==14) {HEX = "E";} if (z==15) {HEX = "F";}
///////////////////
z=0; while (bi>0)  {z++; bi=bi-1;};    
if (z==0)  {HEX += "0";} if (z==1)  {HEX += "1";} if (z==2)  {HEX += "2";} if (z==3)  {HEX += "3";}
if (z==4)  {HEX += "4";} if (z==5)  {HEX += "5";} if (z==6)  {HEX += "6";} if (z==7)  {HEX += "7";}
if (z==8)  {HEX += "8";} if (z==9)  {HEX += "9";} if (z==10) {HEX += "A";} if (z==11) {HEX += "B";}
if (z==12) {HEX += "C";} if (z==13) {HEX += "D";} if (z==14) {HEX += "E";} if (z==15) {HEX += "F";}
///////////////////
HEX += " ";
return HEX; //String
}
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////LCD: 
String = "Buf: ";
for (xK=0; xK<9; xK++) {        
String += LCD_HEX(Buf[xK]);  
};
label.innerHTML = String; 
////////////////////////////////////////////////////////////////////////////////
</script> 


</body>
</html>
буфер работает...))
:tea:
Nranddek
Вымогатель припоя
Сообщения: 598
Зарегистрирован: Сб авг 09, 2025 22:08:28

Re: расчет контрольной суммы (требуется помощь)

Сообщение Nranddek »

тег code не ахти работает... не пробовали ему задавать тип html принудительно?

Добавлено after 6 minutes 21 second:
как странно...

Код: Выделить всё

вначале даёт красивую и корректную подсветку, а потом сбрасывает обратно (как в сообщении выше):
[spoiler][img]https://img.radiokot.ru/files/161123/3tpkt27c82.PNG[/img][/spoiler]
Аватара пользователя
HardWareMan
Мучитель микросхем
Сообщения: 431
Зарегистрирован: Ср сен 02, 2015 07:47:20

Re: расчет контрольной суммы (требуется помощь)

Сообщение HardWareMan »

Объясните мне кто-нибудь этот момент: зачем считать контрольную сумму для данных из лога, который снят с живого обмена и контрольные суммы там уже посчитаны? В чём здесь заключается величие сумрачного гения?

PS А шахматисту в школу не пора ли? Сегодня время переворачивать!
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 22 апреля 2026 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.
/!\ Обновлений для STM32PowerMon и STM32PowerMon-UCPD временно не будет.
roman.com
Друг Кота
Сообщения: 9153
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: расчет контрольной суммы (требуется помощь)

Сообщение roman.com »

HardWareMan писал(а):В чём здесь заключается величие сумрачного гения?
так выше писали зачем)) будем подменять пакеты...
:tea:

сейчас работает так:
ПК >> 1B 02 80 62 00 03 00 C0 C9 72 >> "устройство".

а надо так:
ПК >> 1B 02 80 62 00 03 00 C0 C9 72 >> перехват/подмена 1B 02 80 62 01 03 00 C0 CD 6D >> "устройство".

всё))
:tea:

так мы сегодня увидим рабочий пример программы или нет ? ))
:)
Аватара пользователя
HardWareMan
Мучитель микросхем
Сообщения: 431
Зарегистрирован: Ср сен 02, 2015 07:47:20

Re: расчет контрольной суммы (требуется помощь)

Сообщение HardWareMan »

Т.е. внезапно нужен фильтр а не генератор посылок?
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 22 апреля 2026 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.
/!\ Обновлений для STM32PowerMon и STM32PowerMon-UCPD временно не будет.
Ответить

Вернуться в «Интеграция с ПК»