<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to 10 bit calculation? Help.</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/02754b11a6/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Runtime/thread/02754b11a6/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Runtime/thread/02754b11a6/</id><updated>2020-02-27T17:32:11.442000Z</updated><subtitle>Recent posts to 10 bit calculation? Help.</subtitle><entry><title>10 bit calculation? Help.</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/02754b11a6/?limit=25#8fa7" rel="alternate"/><published>2020-02-27T17:32:11.442000Z</published><updated>2020-02-27T17:32:11.442000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com69c1b27366fd842a8fbf7d866868bbd79c70baa1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; D. Kugler&lt;/p&gt;
&lt;p&gt;don't be ashamed, mistakes are there, to be done and do it better at next time &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>10 bit calculation? Help.</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/02754b11a6/?limit=25#5ec4" rel="alternate"/><published>2020-02-27T17:32:08.572000Z</published><updated>2020-02-27T17:32:08.572000Z</updated><author><name>klima</name><uri>https://forge.codesys.com/u/klima/</uri></author><id>https://forge.codesys.com62e31f685a8b4963516adaa212ff589fac0bca6a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I made a mistake with coding left to right bytes, that's why the standard approach didn't work, only switching to the 01 variable view help. Everything works as expected.&lt;/p&gt;
&lt;p&gt;In &lt;strong&gt;C&lt;/strong&gt; Im coded like that:&lt;br/&gt;
byte_a&lt;span&gt;[0]&lt;/span&gt; = sum_of_bits | ((value &amp;gt;&amp;gt; 2) &amp;amp; 0xc0);&lt;br/&gt;
byte_b&lt;span&gt;[1]&lt;/span&gt; = value &amp;amp; 0xff;&lt;/p&gt;
&lt;p&gt;Working code:&lt;br/&gt;
value as int.&lt;br/&gt;
byte_of_bits as byte -&amp;gt; sum of bools (bits) from 0 to 5.&lt;br/&gt;
byte_a, byte_b as byte.&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;byte_a := byte_of_bits + SHL(to_byte(value),6);&lt;br/&gt;
byte_b := to_byte(value);&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;D. Kugler - Your code and method working great too &lt;br/&gt;
Thank You for help!&lt;br/&gt;
What a shame, a mistake in the coding method &lt;strong&gt;little endian vs big endian&lt;/strong&gt; oh.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>10 bit calculation? Help.</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/02754b11a6/?limit=25#cb74" rel="alternate"/><published>2020-02-27T17:32:07.498000Z</published><updated>2020-02-27T17:32:07.498000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com8594fe44b12e655d1cd062af7f0b8f6bd67714cf</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; D. Kugler&lt;/p&gt;
&lt;p&gt;declarate a WORD:&lt;/p&gt;
&lt;p&gt;VAR&lt;br/&gt;
 WordCalc : WORD;&lt;br/&gt;
END_VAR&lt;/p&gt;
&lt;p&gt;//convert value to WORD and shift left 6 times, bits 0-5 are false now, value is in bit 6-15&lt;br/&gt;
WordCalc:= SHL(TO_WORD(value),6);&lt;br/&gt;
&lt;a class="" href="https://help.codesys.com/webapp/_cds_operator_shl;product=codesys;version=3.5.15.0" rel="nofollow"&gt;https://help.codesys.com/webapp/_cds_op ... n=3.5.15.0&lt;/a&gt;&lt;br/&gt;
//then store uppers and lowers to your bytes:&lt;br/&gt;
first_byte:= TO_BYTE(WordCalc); //the bits 8-15 are ignorred&lt;br/&gt;
next_byte:= TO_BYTE(SHR(WordCalc,8)); //Shift bits 8-15 to 0-7 before writing &lt;br/&gt;
//Add the bits 0-5, attention  :=  !!&lt;br/&gt;
first_byte.0 := b1; &lt;br/&gt;
...&lt;br/&gt;
...&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>10 bit calculation? Help.</title><link href="https://forge.codesys.com/forge/talk/Runtime/thread/02754b11a6/?limit=25#f941" rel="alternate"/><published>2020-02-27T17:32:04.630000Z</published><updated>2020-02-27T17:32:04.630000Z</updated><author><name>klima</name><uri>https://forge.codesys.com/u/klima/</uri></author><id>https://forge.codesys.com7d109d1bf0a9f19f42d45118cc01e2f2abdf4db7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello, anyone can help me to calculate 10 bit in 2 bytes ?&lt;br/&gt;
&lt;span&gt;[1-6]&lt;/span&gt; + ( &lt;span&gt;[7-8]&lt;/span&gt; + &lt;span&gt;[9-16]&lt;/span&gt; ) need insert value 0 - 1000 in  (7-16) added first 1 - 6 bits  to 7 - 16 ? how to code this in st ?&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;b1,b2,b3.b4,b5,b6:bool;&lt;br/&gt;
first_byte : byte;&lt;br/&gt;
next_byte :byte;&lt;br/&gt;
value : int; (&lt;strong&gt; 0 - 1000 &lt;/strong&gt;)&lt;/p&gt;
&lt;p&gt;first_byte.0 = b1;&lt;br/&gt;
first_byte.1 = b2;&lt;br/&gt;
first_byte.2 = b3;&lt;br/&gt;
first_byte.3 = b4;&lt;br/&gt;
first_byte.4 = b5;&lt;br/&gt;
first_byte.5 = b6;&lt;br/&gt;
(&lt;strong&gt; b7 to b14 represent 0 - 1000 &lt;/strong&gt;)&lt;/p&gt;
&lt;p&gt;And how to insert 0 - 1000 value start from &lt;strong&gt;first_byte.6&lt;/strong&gt; and use all(8bit) &lt;strong&gt;next_byte&lt;/strong&gt; ?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>