<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Classic/Legacy CodeWarrior中的主题 Re: who can explain the following example code,pls</title>
    <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/who-can-explain-the-following-example-code-pls/m-p/134581#M770</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;We'd need a bit more information to be of help. What part are you programing to? What version of Codewarrior are you using? All I can say is that the code is setting or clearing certain bits in the PWM's control registers, and that's about it.&lt;BR /&gt;&lt;BR /&gt;---Tom&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 04 May 2006 22:02:47 GMT</pubDate>
    <dc:creator>J2MEJediMaster</dc:creator>
    <dc:date>2006-05-04T22:02:47Z</dc:date>
    <item>
      <title>who can explain the following example code,pls</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/who-can-explain-the-following-example-code-pls/m-p/134580#M769</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;i learn and read the example program. in 3_bldc_quadrature_encoder.mcp, events.c&lt;/DIV&gt;&lt;DIV&gt;the following code, i dont understand.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;extern const pwm_sChannelControl bldcCommutationTableComp[8] = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ MC_PWM_ALL_SIGNALS, PWM_ZERO_MASK },&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ (MC_PWM_SIGNAL_3 | MC_PWM_SIGNAL_2), (PWM_SWAP_1 | PWM_SWAP_0) },&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ (MC_PWM_SIGNAL_1 | MC_PWM_SIGNAL_0), (PWM_SWAP_2 | PWM_SWAP_0) },&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ (MC_PWM_SIGNAL_5 | MC_PWM_SIGNAL_4), (PWM_SWAP_0) },&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ (MC_PWM_SIGNAL_5 | MC_PWM_SIGNAL_4), (PWM_SWAP_2 | PWM_SWAP_1) },&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ (MC_PWM_SIGNAL_1 | MC_PWM_SIGNAL_0), (PWM_SWAP_1) },&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ (MC_PWM_SIGNAL_3 | MC_PWM_SIGNAL_2), (PWM_SWAP_2) },&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ MC_PWM_ALL_SIGNALS, PWM_ZERO_MASK }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;who can explain it for me with details. in the up codes , these variables represent what meaning, which one swap which?&lt;/DIV&gt;&lt;DIV&gt;Read the codes make me feel faint.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 May 2006 13:33:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/who-can-explain-the-following-example-code-pls/m-p/134580#M769</guid>
      <dc:creator>wxx_rui</dc:creator>
      <dc:date>2006-05-04T13:33:18Z</dc:date>
    </item>
    <item>
      <title>Re: who can explain the following example code,pls</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/who-can-explain-the-following-example-code-pls/m-p/134581#M770</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;We'd need a bit more information to be of help. What part are you programing to? What version of Codewarrior are you using? All I can say is that the code is setting or clearing certain bits in the PWM's control registers, and that's about it.&lt;BR /&gt;&lt;BR /&gt;---Tom&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 May 2006 22:02:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/who-can-explain-the-following-example-code-pls/m-p/134581#M770</guid>
      <dc:creator>J2MEJediMaster</dc:creator>
      <dc:date>2006-05-04T22:02:47Z</dc:date>
    </item>
    <item>
      <title>Re: who can explain the following example code,pls</title>
      <link>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/who-can-explain-the-following-example-code-pls/m-p/134582#M771</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Understanding a statement like this is a common difficulty for all C users.&amp;nbsp; One of the big secrets is that each piece is simple, and it can be understood one piece at a time.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Part of the reason it makes you feel faint, is that the way it is layed out on the page isn't very helpful.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;To make it a little simpler to understand the structure, lets make that clear by formatting:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;extern&amp;nbsp; const&amp;nbsp; pwm_sChannelControl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bldcCommutationTableComp[ 8 ] =&lt;/DIV&gt;&lt;DIV&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MC_PWM_ALL_SIGNALS,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PWM_ZERO_MASK&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;},&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;( MC_PWM_SIGNAL_3 | &amp;nbsp;MC_PWM_SIGNAL_2 ),&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;( PWM_SWAP_1 | PWM_SWAP_0 )&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;},&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;( MC_PWM_SIGNAL_1 | MC_PWM_SIGNAL_0 ),&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;( PWM_SWAP_2 | PWM_SWAP_0 )&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;},&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(MC_PWM_SIGNAL_5 | MC_PWM_SIGNAL_4),&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(PWM_SWAP_0)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;},&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(MC_PWM_SIGNAL_5 | MC_PWM_SIGNAL_4),&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(PWM_SWAP_2 | PWM_SWAP_1)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;},&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(MC_PWM_SIGNAL_1 | MC_PWM_SIGNAL_0),&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(PWM_SWAP_1)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;},&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(MC_PWM_SIGNAL_3 | MC_PWM_SIGNAL_2),&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(PWM_SWAP_2)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;},&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MC_PWM_ALL_SIGNALS,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PWM_ZERO_MASK&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;};&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Now look at the pieces:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;extern&amp;nbsp; const&amp;nbsp; pwm_sChannelControl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bldcCommutationTableComp[ 8 ] =&lt;/DIV&gt;&lt;DIV&gt;{&lt;BR /&gt;...&lt;/DIV&gt;&lt;DIV&gt;} ;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;This is a declaration of an externally visible, constant array of 8 elements, with a value.&amp;nbsp; The array elements are of type "pwm_sChannelControl" which must be defined before this declaration, usually in some header (by convention ".h") file.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Each element of the 8 is initialized by the sequence enclosed in curly brackets.&amp;nbsp; For example element 0&amp;nbsp; is set up as:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MC_PWM_ALL_SIGNALS,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PWM_ZERO_MASK&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;},&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Which suggests that the "pwm_sChannelControl"&amp;nbsp;type is a structure or array with 2 elements.&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;The symbols "MC_PWM_ALL_SIGNALS" and "PWM_ZERO_MASK" are likely defined in the same header file as the "pwm_sChannelControl" type with&amp;nbsp;preprocessor statements like:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#define PWM_ZERO_MASK ( 0x40 )&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If you look at the documentation for the hardware involved, you will likely find that these defined symbol names are related to the names or functions of the bits and fields in the hardware control registers.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Look in the header files involved and search for the uses of the "bldcCommutationTableComp" array for further hints and comments about the contents and usage of this array.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;This style of dealing with hardware registers in a C program is quite common, and can best be understood with several open editor windows and the hardware documentation.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;U&gt;MORAL&lt;/U&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&lt;U&gt;&lt;/U&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Code is written once, (or maybe 2 or 3 times) but read many more times.&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;If the formatting helps make the structure clear, it makes understanding the code easier.&amp;nbsp;&amp;nbsp; Comments that tell the reader useful information that is not clear from the code are also a big help.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;In this case, it probably would have been helpful to add comments on each element of the array about the purposeof that element in the program structure.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Remember this when you write code!&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 May 2006 01:15:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Classic-Legacy-CodeWarrior/who-can-explain-the-following-example-code-pls/m-p/134582#M771</guid>
      <dc:creator>SteveRussell</dc:creator>
      <dc:date>2006-05-05T01:15:42Z</dc:date>
    </item>
  </channel>
</rss>

