###前提・実現したいこと
初めての質問になります。少々場違いな気がしますが、プログラミングの内容なので質問してみることにしました。ご指導ご鞭撻のほどお願いします。
mbedを触り始めて1年程度になります。
9軸センサに興味を持ち、3軸加速度、3軸ジャイロ、3軸コンパスのセンサを購入しました。
I2C通信でそれぞれのセンサから情報を検出しようとしているところです。
現在、3軸ジャイロセンサからx,y,z軸の角速度を検出しようとしていますがコンパイルが通りません。
マイコンmbed NXP LPC 1768を使用しています。mbedのページ
3軸ジャイロセンサは秋月電子通商のL3GD20のDIP化モジュールを使用しています。3軸ジャイロセンサのページ
ライブラリはこちらからインポートしましたL3GD20.cppとL3GD20.h
###発生している問題・エラーメッセージ
cppとヘッダファイルをインポートしてmain.cppでプログラムを書いています。
エラーメッセージは以下のように出ています。 Error: Type name is not allowed in "main.cpp", Line: 14, Col: 13
###該当のソースコード
C++
1#include "mbed.h" 2#include "L3GD20.h" 3 4L3GD20 gyro(p28,p27); 5DigitalOut myled1(LED1); 6DigitalOut myled4(LED4); 7Serial pc(USBTX, USBRX); 8 9int main(){ 10 bool kv; 11 myled1 = 1; 12 printf("Hello,world\n\r"); 13 float kakusokudo[3]={0,0,0}; 14 kv=L3GD20.read(); 15 printf("%d\n\r",kv); 16 printf("%d ,%d ,%d \n/r",&kakusokudo[0],&kakusokudo[1],&kakusokudo[2]); 17 18 myled4=1; 19 }
###試したこと
このプログラムでは、最初にLEDを光らせてHello,worldを表示させ、角速度センサに検出させてから4番目のLEDを光らせて終了させようとしています。
kv=L3GD20.read();
の部分が原因でエラーとなっています。cppで定義された関数の型と違う形式で書いているのだろうと思いました。
原因はboolだと思い、ちょっと調べてboolはtrueとfalseがあることを知りました。
int i=0;
i=L3GD20.read();
としてみたり
true=L3GD20.read();
としてみたり
L3GD20.read(kakusokudo[0],kakusokudo[1],kakusokudo[2]);
としてみましたがどれもうまくいきませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
c言語はポインタや、ファイル書き込み、読み込みができる程度です。
c++はクラスと構造体の意味が分かる程度の知識しかありません。
プログラミングは苦手です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/19 14:19
2016/09/19 14:24
2016/09/19 14:26
2016/09/19 14:28
2016/09/19 14:50