Например TDA7294

Форум РадиоКот • Просмотр темы - расчет контрольной суммы (требуется помощь)
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб дек 27, 2025 04:48:23

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 318 ]     ... , , , 11, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 21:37:38 
Друг Кота

Карма: -1
Рейтинг сообщений: 86
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8887
Откуда: .ru
Рейтинг сообщения: 0
uint16_t DoCheckSum — функция, которая рассчитывает контрольную сумму блока данных.
замечательно))
а где остальной код программы на СИ ?
:tea:

можно и Ada...
но сначала на СИ... )) у нас уже есть кусок кода на СИ.
потом переделаем на Ada...
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 21:42:38 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
[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 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 22:03:09 
Мучитель микросхем
Аватар пользователя

Карма: 8
Рейтинг сообщений: 105
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 420
Рейтинг сообщения: 0
Барсик! Нужно писать на Барсике!

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 6 декабря 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 22:06:34 
Друг Кота

Карма: -1
Рейтинг сообщений: 86
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8887
Откуда: .ru
Рейтинг сообщения: 0
что такое программа ? ))
программа это код который должен кто-то прочитать и выполнить))

одна функция есть... осталось написать остальную часть программы... и где то её запустить.. и проверить как она работает...
ну запустим в браузере.. .чтоб далеко не ходить)) браузер понимает СИ.
потом перенесём куда угодно... СИ работает везде))
:tea:
пишем для браузера...
Код:
<!DOCTYPE html>
<html>
<head>
<title>КС</title>
<h1>Расчёт КС:</h1>
</head>
<body>


</body>
</html>

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

Изображение

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

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

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


Вложения:
Screenshot_1.jpg [20.24 KiB]
Скачиваний: 258
Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 22:11:37 
Вымогатель припоя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Сб авг 09, 2025 22:08:28
Сообщений: 601
Рейтинг сообщения: 0
говорю же... пофигу на чём писать))

Ок. МК-56


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 22:14:56 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
что такое программа ? ))
программа это код который должен кто-то прочитать и выполнить))

одна функция есть... осталось написать остальную часть программы... и где то её запустить.. и проверить как она работает...
ну запустим в браузере.. .чтоб далеко не ходить)) браузер понимает СИ.
потом перенесём куда угодно... СИ работает везде))
:tea:
пишем для браузера...
Код:
<!DOCTYPE html>
<html>
<head>
<title>КС</title>
<h1>Расчёт КС:</h1>
</head>
<body>


</body>
</html>

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

Изображение

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

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

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


----------
ранеее
HardWareMan писал:
О какой программе речь? Изначальная задача была понять как считается контролька, я выдал прям готовое решение - копипастить в исходник и поехали. О какой программе теперь речь в теме про контрольку?
----------
я полагал что это действительно готовое решение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 22:20:49 
Вымогатель припоя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Сб авг 09, 2025 22:08:28
Сообщений: 601
Рейтинг сообщения: 0
Верно полагали. Функция абсолютно готова.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 22:34:14 
Друг Кота

Карма: -1
Рейтинг сообщений: 86
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8887
Откуда: .ru
Рейтинг сообщения: 0
и где можно проверить как работает это "готовое решение" ?
в EXCEL ?)) с помощью EXCEL и калькулятора мы уже проверили... посчитали всё в ручную))
дальше что ?
:tea:
Nranddek писал(а):
Ок. МК-56

ты уже определись наконец))

Добавлено after 9 minutes 16 seconds:
Функция абсолютно готова.

мы рады)) осталось добавить функцию в программу... пишем скрипт... типа так...

Код:
<!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:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 22:41:27 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
и где можно проверить как работает это "готовое решение" ?
в EXCEL ?)) с помощью EXCEL и калькулятора мы уже проверили... посчитали всё в ручную))
дальше что ?
:tea:
Nranddek писал(а):
Ок. МК-56

ты уже определись наконец))

Добавлено after 9 minutes 16 seconds:
Функция абсолютно готова.

мы рады)) осталось добавить функцию в программу... пишем скрипт... типа так...

Код:
<!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:


непонятно
наши ДАННЫЕ Лога то куда ? что считать то будет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 22:53:41 
Вымогатель припоя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Сб авг 09, 2025 22:08:28
Сообщений: 601
Рейтинг сообщения: 0
наверное, можно немного упростить:
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 шага уложился... Эх, уже плохо помню, чтобы проверить досконально, но на первый взгляд вроде правильно...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 23:12:42 
Друг Кота

Карма: -1
Рейтинг сообщений: 86
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8887
Откуда: .ru
Рейтинг сообщения: 0
наши ДАННЫЕ Лога то куда ? что считать то будет.

обычно данные складываются в буфер... и соответственно считать будем КС для буфера.

Спойлер
Код:
<!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>


упростить можно до безобразия)) до голого ассемблера... дальше только машинные инструкции... ))
но для начала бы просто проверить работоспособность.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 23:37:08 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
наши ДАННЫЕ Лога то куда ? что считать то будет.

обычно данные складываются в буфер... и соответственно считать будем КС для буфера.

Спойлер
Код:
<!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>


упростить можно до безобразия)) до голого ассемблера... дальше только машинные инструкции... ))
но для начала бы просто проверить работоспособность.

что то не так
только заголовок - Расчёт КС


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Пн сен 01, 2025 23:51:22 
Друг Кота

Карма: -1
Рейтинг сообщений: 86
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8887
Откуда: .ru
Рейтинг сообщения: 0
есесно... только заголовок - Расчёт КС
потому что мы ещё не объяснили браузеру что мы от него хотим)) поэтому браузер и не понял...
а браузер выполняет только ту часть кода которую он понимает - заголовок - Расчёт КС

это только начало программы... ))
как сказал ВВП... "мы ещё даже не начинали !"
:)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 00:05:19 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
есесно... только заголовок - Расчёт КС
потому что мы ещё не объяснили браузеру что мы от него хотим)) поэтому браузер и не понял...
а браузер выполняет только ту часть кода которую он понимает - заголовок - Расчёт КС

это только начало программы... ))
как сказал ВВП... "мы ещё даже не начинали !"
:)))

...ну да , и " поставленные задачи ....будут выполнены"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 00:45:24 
Друг Кота
Аватар пользователя

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

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

И снова недвусмысленный намёк для оного - как только Вы опубликуете что именно и для чего Вам нужно, как это должно работать, какие задачи (без шахмат!) выполнять - то есть что-то, что можно принять хотя бы в первом приближении за ТЗ, наверняка найдётся кто-то, кто это реализует.

_________________
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезисты Ordyl Alpha 350 и AM 140.
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльная маска XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 01:22:59 
Друг Кота

Карма: -1
Рейтинг сообщений: 86
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8887
Откуда: .ru
Рейтинг сообщения: 0
:))
мы просто проверяем как работает на функция...))

глянем буфер...
Спойлер
Код:
<!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>



<!---------->
<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:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 01:34:40 
Вымогатель припоя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Сб авг 09, 2025 22:08:28
Сообщений: 601
Рейтинг сообщения: 0
тег code не ахти работает... не пробовали ему задавать тип html принудительно?

Добавлено after 6 minutes 21 second:
как странно... [code=php]
вначале даёт красивую и корректную подсветку, а потом сбрасывает обратно (как в сообщении выше):
СпойлерИзображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 06:28:48 
Мучитель микросхем
Аватар пользователя

Карма: 8
Рейтинг сообщений: 105
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 420
Рейтинг сообщения: 0
Объясните мне кто-нибудь этот момент: зачем считать контрольную сумму для данных из лога, который снят с живого обмена и контрольные суммы там уже посчитаны? В чём здесь заключается величие сумрачного гения?

PS А шахматисту в школу не пора ли? Сегодня время переворачивать!

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 6 декабря 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 08:07:06 
Друг Кота

Карма: -1
Рейтинг сообщений: 86
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8887
Откуда: .ru
Рейтинг сообщения: 0
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:

так мы сегодня увидим рабочий пример программы или нет ? ))
:)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 08:24:51 
Мучитель микросхем
Аватар пользователя

Карма: 8
Рейтинг сообщений: 105
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 420
Рейтинг сообщения: 0
Т.е. внезапно нужен фильтр а не генератор посылок?

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 6 декабря 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 318 ]     ... , , , 11, , , ...  

Часовой пояс: UTC + 3 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y