差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
共用体の応用 [2011/12/11 01:45] member共用体の応用 [2011/12/11 02:04] (現在) member
行 5: 行 5:
 <code c> <code c>
   PFC.PAIORL.WORD = 0xffff;  //ポートAすべてを出力に   PFC.PAIORL.WORD = 0xffff;  //ポートAすべてを出力に
-  PFC.PAIORL.BYTE.H = 0xf  //ポートAの上位BYTEを入力に = 8から15ビットまでを入力に (こんな書き方できるの知ってた?) +  PFC.PAIORL.BYTE.H = 0xff //ポートAの上位BYTEを入力に = 8から15ビットまでを入力に (こんな書き方できるの知ってた?) 
   PFC.PAIORL.BIT.B7 = 0;     //ポートAの7ビット目を入力に   PFC.PAIORL.BIT.B7 = 0;     //ポートAの7ビット目を入力に
   PFC.PAIORL.BIT.B8 = 0;     //ポートAの8ビット目を入力に   PFC.PAIORL.BIT.B8 = 0;     //ポートAの8ビット目を入力に
-  PFC.PAIORL.BIT.B5 = 0;     //ポートAの9ビット目を入力に +  PFC.PAIORL.BIT.B5 = 0;     //ポートAの5ビット目を入力に 
 </code> </code>
  
行 30: 行 30:
                                          
  
-この共用体がタネです。共用体というのはデータの格納場所を共有するわけですよね。ビットフィールドで作った1bitの変数16コと、1byteの変数(unsignede char)2つと2byte(unsignede short)の変数って同じデータの幅を持っているわけです。だから、どれかに値を代入したら、他のメンバーの値も変わってしまという共用体の性質をうまく利用しているわけです。ここで一つ重要なことでリトルエンディアンとかビッグエンディアンとか言う言葉があるということを覚えておいてください。これは何かというと、ビットフィールドの変数が下位ビットから代入されるか、それとも上位ビットから代入されるかということです。詳しくは自分で調べてください。                    +この共用体がタネです。共用体というのはデータの格納場所を共有するわけですよね。ビットフィールドで作った1bitの変数16コと、1byteの変数(unsignede char)2つと2byte(unsignede short)の変数って同じデータの幅を持っているわけです。だから、どれかに値を代入したら、他のメンバーの値も変わってしまという共用体の性質をうまく利用しているわけです。ここで一つ重要なことでリトルエンディアンとかビッグエンディアンとか言う言葉があるということを覚えておいてください。これは何かというと、ビットフィールドの変数が下位ビットから代入されるか、それとも上位ビットから代入されるかということです。詳しくは自分で調べてください。                    
                                          
                                          
/home/users/2/deca.jp-mice/web/cgi/dokuwiki/data/attic/共用体の応用.1323535530.txt.gz · 最終更新: 2011/12/11 01:45 by member
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0