プロフィール

flatol

  • Author:flatol
  • 電子はいいよ!やつらはあんまり裏切らないよ。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

ブログ内検索

RSSフィード

リンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【開発】一番悩むと思ってたI2C周り(KXP84の使い方)

さっくり言って助かった。実は前にテストしてたときは動かねえなあ・・・マジどうしようって感じだったんだが。
で、秋月のKXP84の動かしかた。たぶん需要があると思うのでPSoC-C(HitechC)ベースだけど適当に羅列。続きに書いてあります。

ここから当時のメモ。

RESETPIN はLowでオペレーショナルモード


KXP84のスレーブアドレスはADDR0がグランドかVCCに接続されているかで決定される
main address 001100X GND->X=0 VCC->X=1

ソースコードの一部というかほとんど
#define SLAVE_ADDRESS 0x18

//Addresses KEP84 Internal Addresses.
#define XOUT_H 0x00
#define XOUT_L 0x01
#define YOUT_H 0x02
#define YOUT_L 0x03
#define ZOUT_H 0x04
#define ZOUT_L 0x05
#define FF_INT 0x06
#define FF_DELAY 0x07
#define MOT_INT 0x08
#define MOT_DELAY 0x09
#define CTRL_REGC 0x0A
#define CTRL_REGB 0x0B
#define CTRL_REGA 0x0C
//CTRL_REGA
#define Parity 0x04
#define MOTI 0x02
#define FFI 0x01
//CTRL_REGB
#define CLKhld 0x80
#define nEnable 0x40
#define ST 0x20
#define MOTDen 0x10
#define FFDen 0x08
#define MOTIen 0x04
#define FFIen 0x02
#define FFMOTI 0x01

BYTE ffint[2] = {FF_INT,0x14};
BYTE ffdelay[2] = {FF_DELAY,0x14};
BYTE motint[2] = {MOT_INT,0x4D};
BYTE motdelay[2] = {MOT_DELAY,0x14};
BYTE ctrlregc[2] = {CTRL_REGC,0x00};
BYTE ctrlregb[2] = {CTRL_REGB,0x06};


void ConfigKXP84(void)
{
I2Cm_bWriteCBytes(SLAVE_ADDRESS,ctrlregb,2,I2Cm_CompleteXfer);
I2Cm_bWriteCBytes(SLAVE_ADDRESS,ctrlregc,2,I2Cm_CompleteXfer);
I2Cm_bWriteCBytes(SLAVE_ADDRESS,ffint,2,I2Cm_CompleteXfer);
I2Cm_bWriteCBytes(SLAVE_ADDRESS,ffdelay,2,I2Cm_CompleteXfer);
I2Cm_bWriteCBytes(SLAVE_ADDRESS,motint,2,I2Cm_CompleteXfer);
I2Cm_bWriteCBytes(SLAVE_ADDRESS,motdelay,2,I2Cm_CompleteXfer);
}

void ReadKXP84_X(void)
{
I2Cm_bWriteCBytes(SLAVE_ADDRESS,XOUT_Hの値を格納したアドレス,1,I2Cm_NoStop);
I2Cm_fReadBytes(SLAVE_ADDRESS,rxBuf,1,I2Cm_RepStart);
}


コンフィグしてから値を読む感じでおk。まあ、コンフィグなくても動きそうだけど一応ね。
スポンサーサイト

<< 【外出&写真】紅葉狩り先週の時点でまだまだな感じだった | ホーム | 【日常】オフサイトミーティング(Brown baby) >>


コメント

コメントの投稿


管理者にだけ表示を許可する

 BLOG TOP 


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。