2016-12-26 6 views
0

ADXL345加速度計をテストして、デバイスIDを取得して、正しく配線されていることを確認しました。今、私は別の軸で加速を得ようとしているので、私は知らない何らかの理由で登録アドレスが送られないので、完了できません。バイトを書き込むために、加速度計のデータシートによればTM4C123GH6PMボードのI2Cを使用してレジスタ・アドレスを送信していません

enter image description here

使用コード:ロジック・アナライザで

void initialize_accelerometer() 
    { 
     I2C0_MSA_R |=0x000000A6; //Specify the slave address of the master and that the next operation is a Transmit or write 
     I2C0_MDR_R=0x2D; //Register address, this is the data not sent 
     I2C0_MCS_R=0x00000003; // (START, RUN); 
     while(I2C0_MCS_R&I2C_MCS_BUSBSY){}; 
     if((I2C0_MCS_R&I2C_MCS_ERROR)==0) 
     { 
      I2C0_MDR_R=0x08; //Data -> Set power control to measure 
      I2C0_MCS_R=0x00000005; // (RUN, STOP); 
      if((I2C0_MCS_R&I2C_MCS_ERROR)==0) 
      { 
       set_data_format(); 
      } 
     } 

}

テスト、結果は次のようになります。

enter image description here

ご覧のとおり、すべてが送信されますが、レジスタのアドレスです。エラーを見つけるのを助けてくれますか?

おかげで、 ハビエル

答えて

0

ああ、データシートを読んで、再び私はそうwhile(I2C0_MCS_R&I2C_MCS_BUSY){};ためwhile(I2C0_MCS_R&I2C_MCS_BUSBSY){};を変更し、間違ったビットをマスクし、問題を解決することを発見しました。

関連する問題