質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

1回答

335閲覧

pic16f1828と加速度センサMPU6050をI2Cでつなぐ

haruo8219

総合スコア14

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

1クリップ

投稿2018/01/16 02:18

編集2018/01/17 05:33

https://github.com/danjperron/GCrash/blob/master/MPU6050.cの
MPU6050のi2c通信参考プログラムをみてプログラムを作成しています。

目的は加速度センサで読み取った値をpicマイコンにi2c通信を用いて通信させたいと思っています。

大学の教授に質問してもわからなかった箇所を教えていただけたらと思います。

https://github.com/danjperron/GCrash/blob/master/MPU6050.cの参考プログラムの
5.6.11.112.114.116.123.129.131.134.144.145.151.153.155.156.157.171行目がどう書き換えても
エラーが返ってくるのですが原因がわからず先に進むことができていません。

プログラムの作成に使用しているのはMPLAB X IDE v4.05です。

お手数おかけいたしますがどうかご回答よろしくお願いいたします。

#define MPU6050_ADDRESS 0x68 // Address with end write bit

#define MPU6050_RA_XG_OFFS_TC 0x00 //[7] PWR_MODE, [6:1] XG_OFFS_TC, [0] OTP_BNK_VLD

#define MPU6050_RA_YG_OFFS_TC 0x01 //[7] PWR_MODE, [6:1] YG_OFFS_TC, [0] OTP_BNK_VLD

#define MPU6050_RA_ZG_OFFS_TC 0x02 //[7] PWR_MODE, [6:1] ZG_OFFS_TC, [0] OTP_BNK_VLD

#define MPU6050_RA_X_FINE_GAIN 0x03 //[7:0] X_FINE_GAIN

#define MPU6050_RA_Y_FINE_GAIN 0x04 //[7:0] Y_FINE_GAIN

#define MPU6050_RA_Z_FINE_GAIN 0x05 //[7:0] Z_FINE_GAIN

#define MPU6050_RA_XA_OFFS_H 0x06 //[15:0] XA_OFFS

#define MPU6050_RA_XA_OFFS_L_TC 0x07

#define MPU6050_RA_YA_OFFS_H 0x08 //[15:0] YA_OFFS

#define MPU6050_RA_YA_OFFS_L_TC 0x09

#define MPU6050_RA_ZA_OFFS_H 0x0A //[15:0] ZA_OFFS

#define MPU6050_RA_ZA_OFFS_L_TC 0x0B

#define MPU6050_RA_XG_OFFS_USRH 0x13 //[15:0] XG_OFFS_USR

#define MPU6050_RA_XG_OFFS_USRL 0x14

#define MPU6050_RA_YG_OFFS_USRH 0x15 //[15:0] YG_OFFS_USR

#define MPU6050_RA_YG_OFFS_USRL 0x16

#define MPU6050_RA_ZG_OFFS_USRH 0x17 //[15:0] ZG_OFFS_USR

#define MPU6050_RA_ZG_OFFS_USRL 0x18

#define MPU6050_RA_SMPLRT_DIV 0x19

#define MPU6050_RA_CONFIG 0x1A

#define MPU6050_RA_GYRO_CONFIG 0x1B

#define MPU6050_RA_ACCEL_CONFIG 0x1C

#define MPU6050_RA_FF_THR 0x1D

#define MPU6050_RA_FF_DUR 0x1E

#define MPU6050_RA_MOT_THR 0x1F

#define MPU6050_RA_MOT_DUR 0x20

#define MPU6050_RA_ZRMOT_THR 0x21

#define MPU6050_RA_ZRMOT_DUR 0x22

#define MPU6050_RA_FIFO_EN 0x23

#define MPU6050_RA_I2C_MST_CTRL 0x24

#define MPU6050_RA_I2C_SLV0_ADDR 0x25

#define MPU6050_RA_I2C_SLV0_REG 0x26

#define MPU6050_RA_I2C_SLV0_CTRL 0x27

#define MPU6050_RA_I2C_SLV1_ADDR 0x28

#define MPU6050_RA_I2C_SLV1_REG 0x29

#define MPU6050_RA_I2C_SLV1_CTRL 0x2A

#define MPU6050_RA_I2C_SLV2_ADDR 0x2B

#define MPU6050_RA_I2C_SLV2_REG 0x2C

#define MPU6050_RA_I2C_SLV2_CTRL 0x2D

#define MPU6050_RA_I2C_SLV3_ADDR 0x2E

#define MPU6050_RA_I2C_SLV3_REG 0x2F

#define MPU6050_RA_I2C_SLV3_CTRL 0x30

#define MPU6050_RA_I2C_SLV4_ADDR 0x31

#define MPU6050_RA_I2C_SLV4_REG 0x32

#define MPU6050_RA_I2C_SLV4_DO 0x33

#define MPU6050_RA_I2C_SLV4_CTRL 0x34

#define MPU6050_RA_I2C_SLV4_DI 0x35

#define MPU6050_RA_I2C_MST_STATUS 0x36

#define MPU6050_RA_INT_PIN_CFG 0x37

#define MPU6050_RA_INT_ENABLE 0x38

#define MPU6050_RA_DMP_INT_STATUS 0x39

#define MPU6050_RA_INT_STATUS 0x3A

#define MPU6050_RA_ACCEL_XOUT_H 0x3B

#define MPU6050_RA_ACCEL_XOUT_L 0x3C

#define MPU6050_RA_ACCEL_YOUT_H 0x3D

#define MPU6050_RA_ACCEL_YOUT_L 0x3E

#define MPU6050_RA_ACCEL_ZOUT_H 0x3F

#define MPU6050_RA_ACCEL_ZOUT_L 0x40

#define MPU6050_RA_TEMP_OUT_H 0x41

#define MPU6050_RA_TEMP_OUT_L 0x42

#define MPU6050_RA_GYRO_XOUT_H 0x43

#define MPU6050_RA_GYRO_XOUT_L 0x44

#define MPU6050_RA_GYRO_YOUT_H 0x45

#define MPU6050_RA_GYRO_YOUT_L 0x46

#define MPU6050_RA_GYRO_ZOUT_H 0x47

#define MPU6050_RA_GYRO_ZOUT_L 0x48

#define MPU6050_RA_EXT_SENS_DATA_00 0x49

#define MPU6050_RA_EXT_SENS_DATA_01 0x4A

#define MPU6050_RA_EXT_SENS_DATA_02 0x4B

#define MPU6050_RA_EXT_SENS_DATA_03 0x4C

#define MPU6050_RA_EXT_SENS_DATA_04 0x4D

#define MPU6050_RA_EXT_SENS_DATA_05 0x4E

#define MPU6050_RA_EXT_SENS_DATA_06 0x4F

#define MPU6050_RA_EXT_SENS_DATA_07 0x50

#define MPU6050_RA_EXT_SENS_DATA_08 0x51

#define MPU6050_RA_EXT_SENS_DATA_09 0x52

#define MPU6050_RA_EXT_SENS_DATA_10 0x53

#define MPU6050_RA_EXT_SENS_DATA_11 0x54

#define MPU6050_RA_EXT_SENS_DATA_12 0x55

#define MPU6050_RA_EXT_SENS_DATA_13 0x56

#define MPU6050_RA_EXT_SENS_DATA_14 0x57

#define MPU6050_RA_EXT_SENS_DATA_15 0x58

#define MPU6050_RA_EXT_SENS_DATA_16 0x59

#define MPU6050_RA_EXT_SENS_DATA_17 0x5A

#define MPU6050_RA_EXT_SENS_DATA_18 0x5B

#define MPU6050_RA_EXT_SENS_DATA_19 0x5C

#define MPU6050_RA_EXT_SENS_DATA_20 0x5D

#define MPU6050_RA_EXT_SENS_DATA_21 0x5E

#define MPU6050_RA_EXT_SENS_DATA_22 0x5F

#define MPU6050_RA_EXT_SENS_DATA_23 0x60

#define MPU6050_RA_MOT_DETECT_STATUS 0x61

#define MPU6050_RA_I2C_SLV0_DO 0x63

#define MPU6050_RA_I2C_SLV1_DO 0x64

#define MPU6050_RA_I2C_SLV2_DO 0x65

#define MPU6050_RA_I2C_SLV3_DO 0x66

#define MPU6050_RA_I2C_MST_DELAY_CTRL 0x67

#define MPU6050_RA_SIGNAL_PATH_RESET 0x68

#define MPU6050_RA_MOT_DETECT_CTRL 0x69

#define MPU6050_RA_USER_CTRL 0x6A

#define MPU6050_RA_PWR_MGMT_1 0x6B

#define MPU6050_RA_PWR_MGMT_2 0x6C

#define MPU6050_RA_BANK_SEL 0x6D

#define MPU6050_RA_MEM_START_ADDR 0x6E

#define MPU6050_RA_MEM_R_W 0x6F

#define MPU6050_RA_DMP_CFG_1 0x70

#define MPU6050_RA_DMP_CFG_2 0x71

#define MPU6050_RA_FIFO_COUNTH 0x72

#define MPU6050_RA_FIFO_COUNTL 0x73

#define MPU6050_RA_FIFO_R_W 0x74

#define MPU6050_RA_WHO_AM_I 0x75

int MPU6050_Test_I2C(void);

void Setup_MPU6050(void);

void Get_Accel_Values(void);

unsigned char GotInt_MPU6050(void);

typedef struct

{

short Gx,Gy,Gz;

unsigned short Timer;

unsigned long SumSquare;

}GForceStruct;

extern GForceStruct CurrentData;

extern GForceStruct PeakData;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2018/01/16 02:27

教授はなんて言ってました?
haruo8219

2018/01/16 02:32

ご回答ありがとうございます。コードではなく説明文のように見えるといわれました。ヘッダーを見直したら?とも言われました。
ozwk

2018/01/16 02:38

ヘッダーを見直しましたか?
haruo8219

2018/01/16 02:39

ご回答ありがとうございます。はい。見直したのですがなかなか通りません。
ozwk

2018/01/16 02:43 編集

一応聞いておきますが、5,6行目で指定されているヘッダーファイルをフォルダに置いてありますよね?
haruo8219

2018/01/16 02:47

はい。おいてあります。
ozwk

2018/01/16 02:48

5行目のエラーは何ですか?
haruo8219

2018/01/16 02:50

ヘッダー名が間違っていると出てました。
ozwk

2018/01/17 02:11

本当にi2cMaster.hとMPU6050.hがプロジェクトに存在してます?
guest

回答1

0

MPU6050.cだけでなく組み合わせて使うヘッダファイルも入手しないといけないように見えますが、あわせて入手していますか?

ちゃんとエラーメッセージを読んでください。本当に「ヘッダー名が間違っている」ですか?勝手な解釈を加えずに出たメッセージをそのまま書き写す方が良いアドバイスを得られやすいですよ。

投稿2018/01/16 22:53

a_saitoh

総合スコア702

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

haruo8219

2018/01/17 02:01

ご回答ありがとうございます。 他サイトで同じような指摘を受けました。 ご指摘の通りヘッダファイルを追加しないといけないようでした。 しかしヘッダファイルを追加したのですが 「そのファイルは空だ。付け加える必要がある」とエラーメッセージが来たのですが どのような改善が必要なのでしょうか?
a_saitoh

2018/01/17 04:13

ほんとうに「そのファイルは空だ。付け加える必要がある」と出ましたか?出たメッセージ(英語)をあなたなりに解釈したら「そのファイルは空だ。付け加える必要がある」なだけではありませんか? 『勝手な解釈を加えずに出たメッセージをそのまま書き写す方が良いアドバイスを得られやすいですよ。』
haruo8219

2018/01/17 05:20

「The project "MPU6050.h" is empty. You will need to add a file to the project before you can build it.」と出ています。 解釈まちがえてますか?
episteme

2018/01/17 05:29

そのメッセージは何が出したの? コンパイラ? make? ほかのなにか?
haruo8219

2018/01/17 05:34

buildを実行したときに出てきました。
episteme

2018/01/17 05:37 編集

"何時"ではなく"何が"そのメッセージを出したか、と訊いてます。 で、質問に貼りつけられたコードは何ですか?
ozwk

2018/01/17 05:38

> The project "MPU6050.h" is empty. これヘッダーファイルを追加したつもりが 新しくプロジェクト作ってしまったのでは?
haruo8219

2018/01/17 05:41

確認してみます。
a_saitoh

2018/01/17 06:07

githubを見たところmpu6050.hは1032行ほどあります。どっちにしてもヘッダファイルが存在してただ中が空っぽなのはC言語にとってエラーでもなんでもないですし。
episteme

2018/01/17 06:54

ozwkさんに一票。 The project "MPU6050.h" is empty は 「ファイル:MPU6050.h は空だ」じゃない、 「プロジェクト:MPU6050.h は空だ」ですからね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問