ボッシュさんのBMP180 気圧センサで気温のデーターを取得しようとしているのですが、うまくいきません。ご指導お願いします。個人的には下のコードで、パソコンの方でなにか数字がでると思っているのですが、000でした。抵抗値か転送クロックに問題があるように思っています。よろしくお願いいたします。
環境e2 studio Version:5.3.1.002 評価期間の有効期限が切れています。RL78/G10+E2 Lite
周辺機能の設定の転送クロックは100000です。
抵抗は5kΩ位です。
/* Start user code for global. Do not edit comment generated here */char buf[256]="";char data[10]="";unsigned long millisec;void sleep(long i_end_millisecond);void uart(void);/* End user code. Do not edit comment generated here */
コード生成担当の鈴木です。BMP180は使ったことがないのですが、コード生成で出力したソースだけでは、データの取得はできません。BMP180でデータを取得するにはリスタート処理が必要になります。RL78 EEPROMアクセスする方法を参考資料として掲載します。この方法で、同じようにBMP180からもデータ取得できると思われます。
チョコです。 鈴木さん,少しコメントさせていただきます。 API関数の使用法で,R_IICA0_Master_Send関数やR_IICA0_Master_Receive関数の第4引数が0になって いるとスタート・コンディション発行処理を行ってすぐにスタート・コンディションの確認を行うことになります。 その場合,通信クロックの位相関係によっては,エラーになることがあります。ここは,きちんとした値を 設定しておくべきです。 また,Start bitやStop bitと書いていて,波形もビットのイメージに書かれていますが,これはおかしいです。 NXPの仕様書では,START conditionやSTOP conditionと記載されていて,それと異なる表記は問題です。 SDAの波形で見ると,slave addressの送信が開始される直前にはSDAはLowになります。同様にSTOP conditionのところはHighが連続しているように書かれていますが,これも明確な間違いです。SCLがHigh の状態でSDAが立ち上がるのがSTOP conditionです。 I2Cバスは信号波形を確認して状態をチェックするのが基本なので,こんないい加減な波形を書かれると こまります。