こんにちは立野です。
前回まではstep1~step4(LED,Buzzer)などの中身を変えていましたが、今までは変える所ピンポイントで変えていたので今後の予定は、文の中身を1つずつ理解して、加えてその文の中身も最終的に変えていくことです。
自分で置き換える文がわかりやすくするために、例えば#include “iodefine.h”だったらhの後にSTと付け加えていきます。
step1(LED)
step2(Buzzer)
step3(switch)
step4(Buzzer)
step5(sensor)
step6(motor)
step7(feedback)
step8(まとめ)
まず最初にゴールまで走るために必要なstep8の中身から上から順に、
#include “iodefine.h”
#include “portdef.h”
#include “macro.h”
#include “mytypedef.h”
#include “parameters.h”
#include “glob_var.h”
この文の#include “portdef.h”の中身から。
最初に出てくる#ifdefとは、defineで定義された識別子があるかチェックするコマンドで後の処理はifと同じと条件付コンパイル機能となります。
#elseは、他に(if文以外の条件の文が出てきた時の処理の事)
#defineは、その文の中を定義していくこと。例えばdefine AをBとするとソース内のAの部分がコンパイル時に全てBに置き換えられる、定数などで用いられます。
この中の#define BUZZER (PE.DRL.BIT.B6)は何処を指しているか探していきます。
#include “iodefine.h”の文の中にDRLと検索(Ctrlキーとfボタンを押すと出てくる) してここの事を指していることがわかりました。(下記)
の中のこの部分です。
PEといのはファイルから回路図で表すとこの部分を指します。
DRLとは、ルネサスエレクトロニクス社のカタログ資料を見ると16.6のところにI/Oポートレジスタの説明に記述されています。(下記)
struct st_pe { /* struct PE */
union { /* PEDRL */
unsigned short WORD; /* Word Access */
struct { /* Byte Access */
unsigned char H; /* High */
unsigned char L; /* Low */
} BYTE; /* */
struct { /* Bit Access */
unsigned char B6 :1; /* Bit 6 */
} BIT; /* */
} DRL; /* */
この後の続きをやっていきますが#include “iodefine.h”(これから自分で変えていく文)は、PiCoclassic2.c(自分のはsatorupico.c)の文に置き換えて保存するために新規作成→ビルド→F9で左横のスペースに保存しておきます。