Форум РадиоКот • Просмотр темы - расчет контрольной суммы (требуется помощь)
Сообщения без ответов | Активные темы
Страница 14 из 16
[ Сообщений: 318 ]
... , , , , ,
Автор
Сообщение
o90
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 15:53:24
Зарегистрирован: Сб авг 09, 2025 22:19:34Сообщений: 114
Рейтинг сообщения: 0
muravei_ , надо и обратную сказать. Туда-сюда же надо ))
туда была выше:
download/file.php?id=420720 В экселе ему не нравится , а программировать он не умеет, эксель тоже не знает .
Всем "помагателям" хамоватому халявщику - славу супер программиста вам стяжать не удастся (так себе задачка) , а проучить его стоит.
HardWareMan писал(а):
А разве такую обувь ещё носят в миру?
По моему это к обуви не имеет отношения, а имеет к шабаду , к бидонам с молоком и пятнице .
Но могу ошибаться.
для тех кто совсем в танке с берушами в ушах.
в десятый раз.
уважаемый может хватит хамить . не надо вот этих вывертов и обращений к окружению
повторяю именно Вам с плохим зрением . в EXCEL всё у меня давно работает.
нет чего то умного сказать по теме , то лучше промолчать чем выкручиваться превирая - мелковато.
Вернуться наверх
Реклама
roman.com
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 16:13:43
Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13Сообщений: 8693Откуда: .ru
Рейтинг сообщения: 0
на смену SIZE пришёл len... от length.
это пришло из интернета... ))
o90 писал(а):
" Выдана полная программа."
забыли дописать... для ардуино))
ардуино знает что такое
uint8_t ...
uint16_t ...
остальные программы не в курсе))
Вернуться наверх
Реклама
o90
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 16:17:11
Зарегистрирован: Сб авг 09, 2025 22:19:34Сообщений: 114
Рейтинг сообщения: 0
на смену SIZE пришёл len... от length.
это пришло из интернета... ))
o90 писал(а):
" Выдана полная программа."
забыли дописать... для ардуино))
ардуино знает что такое
uint8_t ...
uint16_t ...
остальные программы не в курсе))
понял.
скажите а что ардуино IDE сможет провести расчёт это интересно.
(и была шальная мысля в ide попробовать но как то отбросил ее после здешних перепалок )
на ней можно было бы сразу сформировать и отсыл по RS232 либо посыл в память "умному экрану"
Последний раз редактировалось o90 Вт сен 02, 2025 16:25:50, всего редактировалось 1 раз.
Вернуться наверх
roman.com
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 16:25:27
Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13Сообщений: 8693Откуда: .ru
Рейтинг сообщения: 0
разумеется)) выше писал... копируем и вставляем в МК...
изменив типы переменных... типа всяких uint8_t... uint16_t... и т.д.
далее... crc нам больше не нужен...
Спойлер Код:
<!DOCTYPE html> <html> <head> <title>КС</title> <h2>Расчёт КС:</h2> </head> <body> <script> //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////Buf: var Buf = [ 0x00,0x00,0x00,0xC0,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,0 ]; var xTX = 0; // счёт xTX var KS_len = 4; // KS_len var String; //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////KS: var Cnt = 0; var Sum = 0; var Tmp1 = 0; var Tmp2 = 0; function KS(){ // Сброс Cnt = 0; Sum = 0; Tmp1 = 0; Tmp2 = 0; // Цикл расчёта while (Cnt < KS_len) { // Tmp1 Tmp1 += Buf[Cnt]; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }; Tmp1 = Tmp1 & 0xFFFF; // Sum Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }; Sum = Sum & 0xFFFF; // Следующий байт Cnt++; }; // Финализация Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }; Tmp2 = Tmp2 & 0xFFFF; Tmp2 ^= 0x00FF; Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }; Tmp1 = Tmp1 & 0xFFFF; Tmp1 ^= 0x00FF; Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00); // Результат Buf[KS_len+1] = ((Sum>>8) & 0xFF); Buf[KS_len] = ((Sum) & 0xFF); }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////наверное, можно немного упростить: /* 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)); } */ //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////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 } //////////////////////////////////////////////////////////////////////////////// </script> <!----------> <div id='label' style='position: absolute; left: 10px; top: 100px; width: 970px; height: 0px; font-size: 30px; color: #000000; background: #1CD3A2;'>len:</div> <script>var label = document.getElementById('label');</script> <!----------> <div id='label_1' style='position: absolute; left: 10px; top: 200px; width: 970px; height: 0px; font-size: 30px; color: #000000; background: #1CD3A2;'>КС:</div> <script>var label_1 = document.getElementById('label_1');</script> <!----------> <input id='button' type='button' value='нажми меня ))' onClick='Button();' style='position: absolute; left: 10px; top: 300px; width: 500px; height: 80px; font-size: 50px; border: 4px solid maroon; background: #00FF00;'> <script> function Button() { //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////KS: KS(); //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////LCD: label.innerHTML = "len: " + KS_len; /////////////////// String = "КС: "; for (xTX=0; xTX<KS_len+2; xTX++) { String += LCD_HEX(Buf[xTX]); }; label_1.innerHTML = String; Buf[0]++; if (Buf[0] > 255){Buf[0] = 0;}; }; //////////////////////////////////////////////////////////////////////////////// </script> </body> </html>
Вернуться наверх
Реклама
smacorp
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 16:33:50
Друг Кота
Карма: 59
Рейтинг сообщений: 1566
Зарегистрирован: Вт окт 22, 2013 04:37:23Сообщений: 3394Откуда: Казань
Рейтинг сообщения: 0
скажите а что ардуино IDE сможет провести расчёт это интересно. (и была шальная мысля в ide попробовать
Свят-свят, мы присутствуем при рождении нового ардуинщика!
Впрочем, ТС воспринимает IDE как что-то отдельное, нечто особенное, могущее провести расчёт. ТС не в курсе, что видов IDE чуть меньше, чем грязи под ногами, поэтому, может быть, новому ардуинщику и не быть.
_________________Платы для HLDI - установки лазерной засветки фоторезиста.Фоторезисты Ordyl Alpha 350 и AM 140 .Жидкое олово для лужения плат (видео ) - самое лучшее и только у меня. Паяльная маска XV501T-4 и KSM-S6189 (5 цветов). Заказ печатных плат - pcbsmac@gmail.com
Вернуться наверх
Реклама
o90
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 16:37:28
Зарегистрирован: Сб авг 09, 2025 22:19:34Сообщений: 114
Рейтинг сообщения: 0
разумеется)) выше писал... копируем и вставляем в МК...
изменив типы переменных... типа всяких uint8_t... uint16_t... и т.д.
далее... crc нам больше не нужен...
Спойлер Код:
<!DOCTYPE html> <html> <head> <title>КС</title> <h2>Расчёт КС:</h2> </head> <body> <script> //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////Buf: var Buf = [ 0x00,0x00,0x00,0xC0,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,0 ]; var xTX = 0; // счёт xTX var KS_len = 4; // KS_len var String; //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////KS: var Cnt = 0; var Sum = 0; var Tmp1 = 0; var Tmp2 = 0; function KS(){ // Сброс Cnt = 0; Sum = 0; Tmp1 = 0; Tmp2 = 0; // Цикл расчёта while (Cnt < KS_len) { // Tmp1 Tmp1 += Buf[Cnt]; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }; Tmp1 = Tmp1 & 0xFFFF; // Sum Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }; Sum = Sum & 0xFFFF; // Следующий байт Cnt++; }; // Финализация Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }; Tmp2 = Tmp2 & 0xFFFF; Tmp2 ^= 0x00FF; Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }; Tmp1 = Tmp1 & 0xFFFF; Tmp1 ^= 0x00FF; Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00); // Результат Buf[KS_len+1] = ((Sum>>8) & 0xFF); Buf[KS_len] = ((Sum) & 0xFF); }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////наверное, можно немного упростить: /* 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)); } */ //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////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 } //////////////////////////////////////////////////////////////////////////////// </script> <!----------> <div id='label' style='position: absolute; left: 10px; top: 100px; width: 970px; height: 0px; font-size: 30px; color: #000000; background: #1CD3A2;'>len:</div> <script>var label = document.getElementById('label');</script> <!----------> <div id='label_1' style='position: absolute; left: 10px; top: 200px; width: 970px; height: 0px; font-size: 30px; color: #000000; background: #1CD3A2;'>КС:</div> <script>var label_1 = document.getElementById('label_1');</script> <!----------> <input id='button' type='button' value='нажми меня ))' onClick='Button();' style='position: absolute; left: 10px; top: 300px; width: 500px; height: 80px; font-size: 50px; border: 4px solid maroon; background: #00FF00;'> <script> function Button() { //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////KS: KS(); //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////LCD: label.innerHTML = "len: " + KS_len; /////////////////// String = "КС: "; for (xTX=0; xTX<KS_len+2; xTX++) { String += LCD_HEX(Buf[xTX]); }; label_1.innerHTML = String; Buf[0]++; if (Buf[0] > 255){Buf[0] = 0;}; }; //////////////////////////////////////////////////////////////////////////////// </script> </body> </html>
.... ну это почти верх мечтаний ОК.
проверяю ОК пытаюсь сформировать правильно длинную посылку .
к примеру 12 и более.
Вернуться наверх
Реклама
roman.com
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 16:44:30
Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13Сообщений: 8693Откуда: .ru
Рейтинг сообщения: 0
далее... crc нам больше не нужен...
ну и правильно)) потому что это не настоящий crc... а упрощенный.))
а настоящий crc в интернете... поинтересней будет))
Спойлер Код:
//////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////crcEth: unsigned long RXcrcEth; // RXcrc unsigned long crcEth; // crc unsigned long bcrcEth; // буфер crc unsigned long mask_crcEth; // маска crc unsigned char mask_Eth; // маска биты unsigned int xEth; // счёт unsigned int x1Eth; // счёт unsigned int x2Eth; // счёт void fcrcEth(void) { //crc Eth: //60...63 -crc /////////////////////////////////////////////// TX_int > RXcrcEth: //0. TX_int > RXcrcEth RXcrcEth = TX_int[UDP_TX_len+3]; // RXcrc RXcrcEth = (RXcrcEth<<8) | TX_int[UDP_TX_len+2]; // RXcrc RXcrcEth = (RXcrcEth<<8) | TX_int[UDP_TX_len+1]; // RXcrc RXcrcEth = (RXcrcEth<<8) | TX_int[UDP_TX_len]; // RXcrc /////////////////////////////////////////////// crc Eth: 60 байт -10 ms (8 мгц) //1. сброс crcEth crcEth=0; TX_int[UDP_TX_len] = 0; // сброс crc Eth =0 TX_int[UDP_TX_len+1] = 0; // сброс crc Eth =0 TX_int[UDP_TX_len+2] = 0; // сброс crc Eth =0 TX_int[UDP_TX_len+3] = 0; // сброс crc Eth =0 /////////////////////////////////////////////// //2. Input Data reflected 0x01 > 0x80 //0...3 Data > crcEth for( x1Eth = 0; x1Eth < 4; x1Eth++ ){ // байты: 4 //////////// mask_Eth = 0x01; //////////// for (xEth=0; xEth<8; xEth++) { // биты 8 /////////// crcEth = crcEth << 1; if ( TX_int[x1Eth] & mask_Eth ) { crcEth |= 1; }; mask_Eth = mask_Eth << 1; /////////// }; /////////// }; /////////////////////////////////////////////// //3. Initial Value 0xFFFFFFFF crcEth ^= 0xFFFFFFFF; /////////////////////////////////////////////// //4. Input Data reflected 0x01 > 0x80 //4...59 Data > crcEth x2Eth = 4; // смещение 4 байт for( x1Eth = 0; x1Eth < UDP_TX_len; x1Eth++ ){ // байты: UDP_TX_len //////////// mask_Eth = 0x01; //////////// for (xEth=0; xEth<8; xEth++) { // биты =8 /////////// if (crcEth & 0x80000000) { crcEth = crcEth << 1; if ( TX_int[x2Eth] & mask_Eth ) { crcEth |= 1; }; mask_Eth = mask_Eth << 1; crcEth = crcEth ^ 0x04C11DB7; // Eth. } else { crcEth = crcEth << 1; if ( TX_int[x2Eth] & mask_Eth ) { crcEth |= 1; }; mask_Eth = mask_Eth << 1; }; /////////// }; x2Eth++; /////////// }; /////////////////////////////////////////////// //5. Result reflected 0x80 > 0x01 //crc bcrcEth = crcEth; // crc > буфер crcEth = 0; // сброс crc mask_crcEth = 0x00000001; for( xEth = 0; xEth < 32; xEth++ ){ crcEth=(crcEth<<1); //0b00000001 > //0b10000000 if ( bcrcEth & mask_crcEth ) { crcEth |= 1; }; mask_crcEth = mask_crcEth << 1; }; /////////////////////////////////////////////// //6. Final Xor Value //crc crcEth ^= 0xFFFFFFFF; /////////////////////////////////////////////// //7. Data Out //0...59 Data // 60,61,62,63 -crc //TX_int[UDP_TX_len] = crcEth; //TX_int[UDP_TX_len+1] = crcEth>>8; //TX_int[UDP_TX_len+2] = crcEth>>16; //TX_int[UDP_TX_len+3] = crcEth>>24; /////////////////////////////////////////////// }; ////////////////////////////////////////////////////////////////////////////////
далеко его убирать не будем... он нам ещё пригодится))
когда по RS232 ничего не получится... будем подключать наше "устройство" по интернету))
Вернуться наверх
o90
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 17:04:05
Зарегистрирован: Сб авг 09, 2025 22:19:34Сообщений: 114
Рейтинг сообщения: 0
далее... crc нам больше не нужен...
ну и правильно)) потому что это не настоящий crc... а упрощенный.))
а настоящий crc в интернете... поинтересней будет))
Спойлер Код:
//////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////crcEth: unsigned long RXcrcEth; // RXcrc unsigned long crcEth; // crc unsigned long bcrcEth; // буфер crc unsigned long mask_crcEth; // маска crc unsigned char mask_Eth; // маска биты unsigned int xEth; // счёт unsigned int x1Eth; // счёт unsigned int x2Eth; // счёт void fcrcEth(void) { //crc Eth: //60...63 -crc /////////////////////////////////////////////// TX_int > RXcrcEth: //0. TX_int > RXcrcEth RXcrcEth = TX_int[UDP_TX_len+3]; // RXcrc RXcrcEth = (RXcrcEth<<8) | TX_int[UDP_TX_len+2]; // RXcrc RXcrcEth = (RXcrcEth<<8) | TX_int[UDP_TX_len+1]; // RXcrc RXcrcEth = (RXcrcEth<<8) | TX_int[UDP_TX_len]; // RXcrc /////////////////////////////////////////////// crc Eth: 60 байт -10 ms (8 мгц) //1. сброс crcEth crcEth=0; TX_int[UDP_TX_len] = 0; // сброс crc Eth =0 TX_int[UDP_TX_len+1] = 0; // сброс crc Eth =0 TX_int[UDP_TX_len+2] = 0; // сброс crc Eth =0 TX_int[UDP_TX_len+3] = 0; // сброс crc Eth =0 /////////////////////////////////////////////// //2. Input Data reflected 0x01 > 0x80 //0...3 Data > crcEth for( x1Eth = 0; x1Eth < 4; x1Eth++ ){ // байты: 4 //////////// mask_Eth = 0x01; //////////// for (xEth=0; xEth<8; xEth++) { // биты 8 /////////// crcEth = crcEth << 1; if ( TX_int[x1Eth] & mask_Eth ) { crcEth |= 1; }; mask_Eth = mask_Eth << 1; /////////// }; /////////// }; /////////////////////////////////////////////// //3. Initial Value 0xFFFFFFFF crcEth ^= 0xFFFFFFFF; /////////////////////////////////////////////// //4. Input Data reflected 0x01 > 0x80 //4...59 Data > crcEth x2Eth = 4; // смещение 4 байт for( x1Eth = 0; x1Eth < UDP_TX_len; x1Eth++ ){ // байты: UDP_TX_len //////////// mask_Eth = 0x01; //////////// for (xEth=0; xEth<8; xEth++) { // биты =8 /////////// if (crcEth & 0x80000000) { crcEth = crcEth << 1; if ( TX_int[x2Eth] & mask_Eth ) { crcEth |= 1; }; mask_Eth = mask_Eth << 1; crcEth = crcEth ^ 0x04C11DB7; // Eth. } else { crcEth = crcEth << 1; if ( TX_int[x2Eth] & mask_Eth ) { crcEth |= 1; }; mask_Eth = mask_Eth << 1; }; /////////// }; x2Eth++; /////////// }; /////////////////////////////////////////////// //5. Result reflected 0x80 > 0x01 //crc bcrcEth = crcEth; // crc > буфер crcEth = 0; // сброс crc mask_crcEth = 0x00000001; for( xEth = 0; xEth < 32; xEth++ ){ crcEth=(crcEth<<1); //0b00000001 > //0b10000000 if ( bcrcEth & mask_crcEth ) { crcEth |= 1; }; mask_crcEth = mask_crcEth << 1; }; /////////////////////////////////////////////// //6. Final Xor Value //crc crcEth ^= 0xFFFFFFFF; /////////////////////////////////////////////// //7. Data Out //0...59 Data // 60,61,62,63 -crc //TX_int[UDP_TX_len] = crcEth; //TX_int[UDP_TX_len+1] = crcEth>>8; //TX_int[UDP_TX_len+2] = crcEth>>16; //TX_int[UDP_TX_len+3] = crcEth>>24; /////////////////////////////////////////////// }; ////////////////////////////////////////////////////////////////////////////////
далеко его убирать не будем... он нам ещё пригодится))
когда по RS232 ничего не получится... будем подключать наше "устройство" по интернету))
не по инет не надо управлять только RS232 ( почему не получиться) поэтому шифрование хитрое нет необходимости.
только проверка целостности данных . мне бы это сделать .
потом буду умным экраном управлять девайсом .
длинные посылки пока учусь
Добавлено after 6 minutes 41 second: скажите а что ардуино IDE сможет провести расчёт это интересно. (и была шальная мысля в ide попробовать
Свят-свят, мы присутствуем при рождении нового ардуинщика!
Впрочем, ТС воспринимает IDE как что-то отдельное, нечто особенное, могущее провести расчёт. ТС не в курсе, что видов IDE чуть меньше, чем грязи под ногами, поэтому, может быть, новому ардуинщику и не быть.
как обычно не по теме и не в рифму.
сомневаюсь что кто то постоянно пользуется даже 2.0 , как то всё зациклилось на 1.8.19.
да и станок с электронной гитарой на 2560 редактируется под 1.8.19
Вернуться наверх
smacorp
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 17:14:33
Друг Кота
Карма: 59
Рейтинг сообщений: 1566
Зарегистрирован: Вт окт 22, 2013 04:37:23Сообщений: 3394Откуда: Казань
Рейтинг сообщения: 0
как обычно не по теме и не в рифму
Это да. До Ваших рифм и тем мне действительно не дотянуться.
сомневаюсь что кто то постоянно пользуется даже 2.0 , как то всё зациклилось на 1.8.19. да и станок с электронной гитарой на 2560 редактируется под 1.8.19
А как же ирокезы? Причем здесь ирокезы? А причём электрогитара и конкретные версии Arduino IDE?
Действительно интереснее всего наблюдать за глубиной этих глубин со стороны с попкорном.
_________________Платы для HLDI - установки лазерной засветки фоторезиста.Фоторезисты Ordyl Alpha 350 и AM 140 .Жидкое олово для лужения плат (видео ) - самое лучшее и только у меня. Паяльная маска XV501T-4 и KSM-S6189 (5 цветов). Заказ печатных плат - pcbsmac@gmail.com
Вернуться наверх
Реклама
Nranddek
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 17:21:52
Карма: 2
Рейтинг сообщений: -9
Зарегистрирован: Сб авг 09, 2025 22:08:28Сообщений: 373
Рейтинг сообщения: 0
Ёпрст, осень же! уфф... теперь всё стало понятно.
Вернуться наверх
roman.com
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 17:43:16
Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13Сообщений: 8693Откуда: .ru
Рейтинг сообщения: 0
наконец то догадался)))
Вернуться наверх
o90
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 17:47:23
Зарегистрирован: Сб авг 09, 2025 22:19:34Сообщений: 114
Рейтинг сообщения: 0
Ёпрст, осень же! уфф... теперь всё стало понятно.
уфф... теперь всё стало понятно, тандем с учеником
smacorp это Ваш лучший ученик ? могли бы ему это сказать за экраном.
Вернуться наверх
roman.com
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 18:30:44
Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13Сообщений: 8693Откуда: .ru
Рейтинг сообщения: 0
пытаюсь сформировать правильно длинную посылку . к примеру 12 и более.
1B 02 2D B5 30 00 00 69 A5 69 00 00 00 00 00 4C 04 00 00 4C 04 00 00 4B 06 00 00 00 01 FF FF 7F FE 00 00 00 01 FF FF 7F FE 00 00 00 02 FF FF 7F FE 0E D7
1B 02 2D B5 33 00 00 69 A5 69 00 00 00 00 00 4C 04 00 00 4C 04 00 00 4B 06 00 00 00 01 FF FF 7F FE 00 00 00 01 FF FF 7F FE 00 00 00 02 FF FF 7F FE 95 4D
Спойлер Код:
<!DOCTYPE html> <html> <head> <title>КС</title> <h2>Расчёт КС:</h2> </head> <body> <script> //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////Buf: var Buf = [ //30 00 00 69 A5 69 00 00 //8 //00 00 00 4C 04 00 00 4C //16 //04 00 00 4B 06 00 00 00 //24 //01 FF FF 7F FE 00 00 00 //32 //01 FF FF 7F FE 00 00 00 //40 //02 FF FF 7F FE //45 //КС-0E D7 0x30,0x00,0x00,0x69,0xA5,0x69,0x00,0x00,0x00,0x00,0x00,0x4C,0x04,0x00,0x00,0x4C,//16 0x04,0x00,0x00,0x4B,0x06,0x00,0x00,0x00,0x01,0xFF,0xFF,0x7F,0xFE,0x00,0x00,0x00,//32 0x01,0xFF,0xFF,0x7F,0xFE,0x00,0x00,0x00,0x02,0xFF,0xFF,0x7F,0xFE,0,0,0,//48 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//64 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//80 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//96 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//112 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //128 /* 0x00,0x00,0x00,0xC0,0,0,0,0,0,0,0,0,0,0,0,0,//16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//32 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//48 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//64 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//80 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//96 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//112 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //128 */ ]; var KS_len = 45; // KS_len var xTX = 0; // счёт xTX var String; //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////KS: var Cnt = 0; var Sum = 0; var Tmp1 = 0; var Tmp2 = 0; function KS(){ // Сброс Cnt = 0; Sum = 0; Tmp1 = 0; Tmp2 = 0; // Цикл расчёта while (Cnt < KS_len) { // Tmp1 Tmp1 += Buf[Cnt]; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }; Tmp1 = Tmp1 & 0xFFFF; // Sum Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }; Sum = Sum & 0xFFFF; // Следующий байт Cnt++; }; // Финализация Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }; Tmp2 = Tmp2 & 0xFFFF; Tmp2 ^= 0x00FF; Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }; Tmp1 = Tmp1 & 0xFFFF; Tmp1 ^= 0x00FF; Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00); // Результат Buf[KS_len+1] = ((Sum>>8) & 0xFF); Buf[KS_len] = ((Sum) & 0xFF); }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////наверное, можно немного упростить: /* 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)); } */ //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////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 } //////////////////////////////////////////////////////////////////////////////// </script> <!----------> <div id='label' style='position: absolute; left: 10px; top: 150px; width: 970px; height: 0px; font-size: 30px; color: #000000; background: #1CD3A2;'>len:</div> <script>var label = document.getElementById('label');</script> <!----------> <div id='label_1' style='position: absolute; left: 10px; top: 250px; width: 970px; height: 0px; font-size: 30px; color: #000000; background: #1CD3A2;'>КС:</div> <script>var label_1 = document.getElementById('label_1');</script> <!----------> <input id='button' type='button' value='нажми меня ))' onClick='Button();' style='position: absolute; left: 10px; top: 380px; width: 500px; height: 80px; font-size: 50px; border: 4px solid maroon; background: #00FF00;'> <script> function Button() { //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////KS: KS(); //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////LCD: label.innerHTML = "len: " + KS_len; /////////////////// String = "КС: "; for (xTX=0; xTX<KS_len+2; xTX++) { String += LCD_HEX(Buf[xTX]); }; label_1.innerHTML = String; Buf[0]++; if (Buf[0] > 255){Buf[0] = 0;}; }; //////////////////////////////////////////////////////////////////////////////// </script> </body> </html>
Всё работает.
Вернуться наверх
HardWareMan
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 18:54:30
Потрогал лапой паяльник
Карма: 8
Рейтинг сообщений: 99
Зарегистрирован: Ср сен 02, 2015 07:47:20Сообщений: 395
Рейтинг сообщения: 0
По моему это к обуви не имеет отношения, а имеет к шабаду , к бидонам с молоком и пятнице .
Но могу ошибаться.
Холява, халава — заготовка для производства листового стекла, а также — голенище сапога (уст.).
Добавлено after 4 minutes 32 seconds: :))) наконец то догадался)))
А ещё прямо сейчас пришло время переворачивать!
_________________ Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ Актуальность репозитория: 1 сентября 2025 года Если чего-то не хватает с сайта st.com - пишите, докачаю.
Вернуться наверх
o90
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 18:58:42
Зарегистрирован: Сб авг 09, 2025 22:19:34Сообщений: 114
Рейтинг сообщения: 0
пытаюсь сформировать правильно длинную посылку . к примеру 12 и более.
1B 02 2D B5 30 00 00 69 A5 69 00 00 00 00 00 4C 04 00 00 4C 04 00 00 4B 06 00 00 00 01 FF FF 7F FE 00 00 00 01 FF FF 7F FE 00 00 00 02 FF FF 7F FE 0E D7
1B 02 2D B5 33 00 00 69 A5 69 00 00 00 00 00 4C 04 00 00 4C 04 00 00 4B 06 00 00 00 01 FF FF 7F FE 00 00 00 01 FF FF 7F FE 00 00 00 02 FF FF 7F FE 95 4D
Спойлер Код:
<!DOCTYPE html> <html> <head> <title>КС</title> <h2>Расчёт КС:</h2> </head> <body> <script> //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////Buf: var Buf = [ //30 00 00 69 A5 69 00 00 //8 //00 00 00 4C 04 00 00 4C //16 //04 00 00 4B 06 00 00 00 //24 //01 FF FF 7F FE 00 00 00 //32 //01 FF FF 7F FE 00 00 00 //40 //02 FF FF 7F FE //45 //КС-0E D7 0x30,0x00,0x00,0x69,0xA5,0x69,0x00,0x00,0x00,0x00,0x00,0x4C,0x04,0x00,0x00,0x4C,//16 0x04,0x00,0x00,0x4B,0x06,0x00,0x00,0x00,0x01,0xFF,0xFF,0x7F,0xFE,0x00,0x00,0x00,//32 0x01,0xFF,0xFF,0x7F,0xFE,0x00,0x00,0x00,0x02,0xFF,0xFF,0x7F,0xFE,0,0,0,//48 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//64 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//80 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//96 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//112 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //128 /* 0x00,0x00,0x00,0xC0,0,0,0,0,0,0,0,0,0,0,0,0,//16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//32 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//48 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//64 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//80 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//96 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,//112 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //128 */ ]; var KS_len = 45; // KS_len var xTX = 0; // счёт xTX var String; //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////KS: var Cnt = 0; var Sum = 0; var Tmp1 = 0; var Tmp2 = 0; function KS(){ // Сброс Cnt = 0; Sum = 0; Tmp1 = 0; Tmp2 = 0; // Цикл расчёта while (Cnt < KS_len) { // Tmp1 Tmp1 += Buf[Cnt]; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }; Tmp1 = Tmp1 & 0xFFFF; // Sum Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }; Sum = Sum & 0xFFFF; // Следующий байт Cnt++; }; // Финализация Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }; Tmp2 = Tmp2 & 0xFFFF; Tmp2 ^= 0x00FF; Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }; Tmp1 = Tmp1 & 0xFFFF; Tmp1 ^= 0x00FF; Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00); // Результат Buf[KS_len+1] = ((Sum>>8) & 0xFF); Buf[KS_len] = ((Sum) & 0xFF); }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////наверное, можно немного упростить: /* 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)); } */ //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////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 } //////////////////////////////////////////////////////////////////////////////// </script> <!----------> <div id='label' style='position: absolute; left: 10px; top: 150px; width: 970px; height: 0px; font-size: 30px; color: #000000; background: #1CD3A2;'>len:</div> <script>var label = document.getElementById('label');</script> <!----------> <div id='label_1' style='position: absolute; left: 10px; top: 250px; width: 970px; height: 0px; font-size: 30px; color: #000000; background: #1CD3A2;'>КС:</div> <script>var label_1 = document.getElementById('label_1');</script> <!----------> <input id='button' type='button' value='нажми меня ))' onClick='Button();' style='position: absolute; left: 10px; top: 380px; width: 500px; height: 80px; font-size: 50px; border: 4px solid maroon; background: #00FF00;'> <script> function Button() { //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////KS: KS(); //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////LCD: label.innerHTML = "len: " + KS_len; /////////////////// String = "КС: "; for (xTX=0; xTX<KS_len+2; xTX++) { String += LCD_HEX(Buf[xTX]); }; label_1.innerHTML = String; Buf[0]++; if (Buf[0] > 255){Buf[0] = 0;}; }; //////////////////////////////////////////////////////////////////////////////// </script>FB </body> </html>
Всё работает.
ТЕСТИРУЮ. работает
нашел случай неправильной выдачи
len: 8КС: 00 00 0B 03 0F 2F 12 00 3F 62 в толмуте КС A2 F3 (позже выяснено что все правильно)
len: 8КС: 00 00 0B 03 00 EA 12 00 36 BE ПРАВИЛЬНО
len: 8КС: 00 00 0B 03 15 91 11 00 7C BD в толмуте 01 63 (позже выяснено что все правильно)
len: 8КС: 00 00 0B 03 49 A1 12 00 7F 75 в толмуте B2 CA (позже выяснено что все правильно)
len: 8КС: 00 00 0B 03 CE 41 11 00 72 5E правильно
len: 8КС: 00 00 0B 03 1F BF 10 00 2D D5 в толмуте 93 2B (позже выяснено что все правильно)
буду изучать Букварь. по коду
Ps читать обязательно.
изучив повторно коды логов . сообщаю
что указанные выше ошибки вычисления КС родились по моей невнимательности.
алгоритм и программа работают пока корректно. ошибок не выявлено.
продолжаю тестирование
Последний раз редактировалось o90 Вт сен 02, 2025 22:28:06, всего редактировалось 3 раз(а).
Вернуться наверх
roman.com
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 19:48:06
Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13Сообщений: 8693Откуда: .ru
Рейтинг сообщения: 0
а это уже к разработчику алгоритма
HardWareMan ... ))
вот почему я в своих конструкциях использую только стандартизированные протоколы...
описаны в Институт инженеров электротехники и электроники (IEEE).
Вернуться наверх
o90
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Вт сен 02, 2025 19:51:32
Зарегистрирован: Сб авг 09, 2025 22:19:34Сообщений: 114
Рейтинг сообщения: 0
а это уже к разработчику алгоритма
HardWareMan ... ))
вот почему я в своих конструкциях использую только стандартизированные протоколы...
описаны в Институт инженеров электротехники и электроники (IEEE).
ОТБОЙ ВСЕМ СОМНЕНИЯМ.
разобрался .
конечно это была моя ошибка , по невнимательности.
по алгоритму и программе пока нет вопросов, да и априори быть не должно.
продолжаю тестировать . накапливая результаты.
Вернуться наверх
HardWareMan
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Ср сен 03, 2025 06:14:40
Потрогал лапой паяльник
Карма: 8
Рейтинг сообщений: 99
Зарегистрирован: Ср сен 02, 2015 07:47:20Сообщений: 395
Рейтинг сообщения: 0
конечно это была моя ошибка , по невнимательности.
Просто ты забыл, какой сегодня день.
_________________ Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ Актуальность репозитория: 1 сентября 2025 года Если чего-то не хватает с сайта st.com - пишите, докачаю.
Вернуться наверх
o90
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Ср сен 03, 2025 10:03:04
Зарегистрирован: Сб авг 09, 2025 22:19:34Сообщений: 114
Рейтинг сообщения: 0
конечно это была моя ошибка , по невнимательности.
Просто ты забыл, какой сегодня день.
да ,,,В России — День Победы над милитаристской Японией и окончания Второй мировой войны.
и это символично - день окончательной победы в войне.
PS , благодаря огромной братской помощи Союзников, и воли к победе.
впереди еще много работы по возрождению былого....
Вернуться наверх
roman.com
Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
Добавлено: Чт сен 04, 2025 10:33:40
Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13Сообщений: 8693Откуда: .ru
Рейтинг сообщения: 0
работает... не работает...
пора уже подключать устройство и закрывать тему...
тема уже затянулась...
Вернуться наверх
Страница 14 из 16
[ Сообщений: 318 ]
... , , , , ,
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения