GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
SAKRAボードをやっと手に入れ、XbeeをつないでSerial出力を試して見ました。
次にデーターロガーにするためアナログデータをSDカードに記憶させようとしましたが、標準のライブラリーだとスピードが12msぐらいまでしかあがりません。
(それでもArduinoよりは早いですが)
また、1秒おき位に200msの遅延が発生します。標準のライフラリーだと限界なのでしょうか?
どなたかスピードアップ(5msくらい)の良い方法アドバイス願います。
*GR-SAKURA Sketch Template Version: V1.01*/
#include <rxduino.h>
#include <sdmmc.h>
const int analogInPin1 = A1;
const int analogInPin2 = A2;
const int analogInPin3 = A3;
unsigned long val_time;
int sensorValue1 = 0;
int sensorValue2 = 0;
int sensorValue3 = 0;
SDMMC mySD;
void setup(){
pinMode(PIN_LED0,OUTPUT);
Serial.begin(9600,SCI_SCI2B); //Press any key to start communication
mySD.begin();
}
void loop(){
File myFile = mySD.open("sample.txt", FILE_WRITE);
if(myFile){
val_time = millis();
myFile.print(val_time);
myFile.print(",");
sensorValue1 = analogRead(analogInPin1);
sensorValue2 = analogRead(analogInPin2);
sensorValue3 = analogRead(analogInPin3);
myFile.print(sensorValue1);
myFile.print(sensorValue2);
myFile.println(sensorValue3);
myFile.close();
}else{
Serial.println("Fail to access MMC");
digitalWrite(PIN_LED0, 0);
delay(100);
初歩的なミスで、mySD.begin();が修正時に抜けて(コピーした時に上のコメント行と一緒になってコメントになっていた)しまっていたためファイルが作れなくなっていました。
大変お騒がせしました。
1msサイクルでデータが取れることが確認でき、遅延も発生しないことがわかりました。
本当にありがとうございました。これで100Hzの振動解析ができるようになりました。
fujitaさんのソースを見て、Timer割り込みの勉強をさせていただきました。
ありがとうございます。
1つ気づいたのですが、static void timer()の if (bufferIndex[writeBank] ){ 文は、いらないのではないでしょうか?
このif文があると、ずっとbufferIndex[writeBank] が 0 のままなので、bufferIndex[ ]がインクリメントされることも無いです。
後、for文が途中で終わっているのは、ご愛嬌ですね:-)。
今後ともよろしくお願いします。
>Yamamoto Minao(たろサ)様、
旧Rulzからのデータ移行で、オリジナルには書かれていた '<' '>' 以降の文字が消えているようです。
旧Rulzのスレッドが見えるようなので、こちらを参照してください。修正しました。
なるほど、bufferIndex[writeBank] < BufferRecordsだったのですね。
両方のバッファがいっぱいになったときは、書き込み待ちになるのですね。
理解しました。