<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">Zdravím konferu.</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">Dle dokumentace jsem zbastlil active balancer s obvodem LTC3300-1, zatím v nějaké testovací verzi.</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">Řeším nyní CRC 4, který je nutný pro SPI komunikaci.</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">Dovoluji si požádat konferu, nemáte prosím někdo s tímto zkušenosti (nikdy jsem CRC neřešil),</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">zkouším to s online kalkulátory, např.</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><a href="https://leventozturk.com/engineering/crc/">https://leventozturk.com/engineering/crc/</a><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">> (tady vyšlo 1101 jak má)</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><a href="https://www.lddgo.net/en/encrypt/crc">https://www.lddgo.net/en/encrypt/crc</a><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">></span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">ale pořád mi to vychází v nich jinak,</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> </span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">Příklad postupu z dokumentace vkládám do přílohy, napsal jsem i kód, který jsem sesmolil pro uvedenou hodnotu,</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">převedenou z 12bbit na 16bit 1100 0001 0000 0000 </span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">x4 + x + 1 polynomial = 13hexa</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">vůbec mi není jasné odkud se vzala hodnota 110101101011 v příklad (a) přílohy nahoře</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> </span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">CRC mi vyšlo jak má 1101 bez negace ale když dám jinou hodnotu zase výjde 1101 </span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> </span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">S pozdravem Pavel</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> </span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">        static uint crcM;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">        static uint shift = 0x800;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">        static byte MyCRC4_ITU(uint crcDiv)</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">        {</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            uint divisor13or0 = 0xD6B;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            uint cmd12bit = crcDiv >> 4;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            byte crcShift;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            crcM = crcDiv; crcM >>= 11;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            uint meziDel = 0x13 ^ cmd12bit;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> </span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            crcM = (divisor13or0 & 0x800) == 0x800 ? (byte)(((byte)0x13) ^ crcM) : (byte)(((byte)0x00) ^ crcM); // 1 0 0 1 1</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            //    800     400     200     100       80      40      20      10      8       4       2       1</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            //              0       0       1        0       0       0       0      0       0       0       0</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            //Res XOR   10110    01010   10101   01100   11000   10110   01010   10100   01110   11100   11110</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            //             16        A      15       C      18      16       A      14       E      1C      1E</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> </span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            //XOR  13      13     0       13      0       13      13      0       13      0       13      13    = 0xD6B</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> </span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            for (int i = 0; i < 11; i++)</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            {</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">                crcM <<= 1;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">                shift >>= 1;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">                divisor13or0 <<= 1;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">                crcShift = (byte)(crcM = (byte)((crcDiv & shift) == 0 ? crcM : crcM | 1));</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">                crcM = (divisor13or0 & 0x800) == 0x800 ? (byte)(((byte)0x13) ^ crcM) : (byte)(((byte)0x00) ^ crcM);</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> </span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">                //crcM = (byte)(crcM & 0x0FF);</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">                Console.WriteLine("shift" + Convert.ToString(shift, 16) + "\tAdterShift:" + Convert.ToString(crcShift, 16) + "\tRes:" + Convert.ToString(crcM, 16));</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            }</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">            return (byte)crcM;</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">        }</span><br style="margin: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px;" /><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> </span>