2010年6月アーカイブ

周辺装置の設定(5)
   GPIO0のレジスタの各ビットの値を抽出して読み込むことができます。そのための各GPIOnのベース・アドレスから0x3FF8までの広いアドレス・エリアが用意されています。
 GPIO0のポートのアドレス 0x5000 3FFCからデータを読み取ると、GPIO0のGPIO0-0~GPIO0-11までの12ビットの全端子の状態が読み取られます。
                but1= *(volatile unsigned int *)(GPIO0_BASE+0x3FFC);
 この命令の実行により、but1にはGPIO0の全端子の状態がセットされています。
 ボタン1は GPIO0-7の端子の状態を確認します。そのために、
                 but1=but1 & 0x80;
 GPIO0から読み取った値はbut1にセットされ、ビット7の値が1で残りの全ビットが0の値と論理積でビット7の0か1を確認することができます。

周辺装置の設定(4)
ボタンを押された状態を調べる

  LPC1114のGPIOの処理に関係するアドレスは、GPIO0からGPIO3の各ポートのベース・アドレスから、次に示すようにそれぞれの役割のレジスタに応じたオフセット値を加算したアドレスとなっています。

IAR2500010.jpg

周辺装置の設定(3)
制御レジスタのアドレスを絶対アドレスで示す

 前回はSYSAHBCLKCTRLレジスタのアドレスをポインタ変数、adr_sysahbclkで指定していました。今回は絶対アドレスで指定することを試してみます。
  SYSAHBCLKCTRL レジスタは、メモリの0x40048080のアドレスにあります。このアドレスは絶対値0x40048080にポインタの型指定のint*を付加して
(Int*)0x40048080  でSYSAHBCLKCTRL レジスタのアドレスを指定しています。このSYSAHBCLKCTRL レジスタのアドレスで指定するメモリの内容を読み出すために、アドレス・ポインタの前に * を追加し、
    *(int*)(0x40048080)
でSYSAHBCLKCTRL レジスタの内容、アドレス(int*)(0x40048080)で示されるメモリの内容を示します。

IAR2400010.jpg

 

 ARM社では7月16日(金)、名古屋で「ARMソリューションセミナー 名古屋 2010」を開催します。

 自動車産業の環境変化を、政策制度/市場動向/技術動向などについて、立教大学大学院教授大久保隆弘氏の講演のほか、半導体企業、エンベッディッド・ソフトウェア企業からの講演が予定されています。

日時 7月16日(金)
セミナ  13:00~16:30 (受付12:30 – 13:00)
懇親会 16:30~18:00
会場 名古屋マリオット アソシア ホテル 16階アイリス
〒450-6002 愛知県名古屋市中村区名駅一丁目1番4号
http://www.associa.com/nma/
定員 80名
事前登録制/参加費無料

周辺装置の設定(2)
  ボタン1、ボタン2の状態を読み込んだ値をセットする変数をbut1、but2と定義し、AHBCLKCTRLレジスタの内容を確認するために保存する変数idを定義しています。また、AHBCLKCTRLレジスタのアドレスを指定するためにint型のデータを示すポインタ型の変数、adr_sysahbclkを定義しています。これらの変数を利用してプログラムの動作を確認します。
 前回作成したプログラムのワークスペースtest015.ewwを開き、評価ボードを接続し、プロジェクト>ダウンロードしてデバッグを選択しデバッグを開始します。

IAR2300010.jpg





カテゴリ


Copyright (C) 2006-2015 CQ Publishing Co.,Ltd. All Rights Reserved.