質問編集履歴
10
title
CHANGED
File without changes
|
body
CHANGED
@@ -95,4 +95,4 @@
|
|
95
95
|
・SAMSUNG microSD HC 32GB
|
96
96
|
|
97
97
|
### 今後やりたいこと
|
98
|
-
400us間隔で受信するCAN信号のログ保存を考えています。ログデータは1信号辺り21byteです。質問にある書き込み遅延の影響でログの取得漏れが起こっています。ログ保存の方法は文字型配列にデータを入れてまとめて
|
98
|
+
400us間隔で受信するCAN信号のログ保存を考えています。ログデータは1信号辺り21byteです。質問にある書き込み遅延の影響でログの取得漏れが起こっています。ログ保存の方法は文字型配列(buf)にデータを入れてからまとめてfile.print(buf);する方法で行います。
|
9
title
CHANGED
File without changes
|
body
CHANGED
@@ -95,4 +95,4 @@
|
|
95
95
|
・SAMSUNG microSD HC 32GB
|
96
96
|
|
97
97
|
### 今後やりたいこと
|
98
|
-
400us間隔で
|
98
|
+
400us間隔で受信するCAN信号のログ保存を考えています。ログデータは1信号辺り21byteです。質問にある書き込み遅延の影響でログの取得漏れが起こっています。ログ保存の方法は文字型配列にデータを入れてまとめてSD.print(buf);する方法で行います。
|
8
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
7
title
CHANGED
File without changes
|
body
CHANGED
@@ -92,4 +92,7 @@
|
|
92
92
|
### 補足情報
|
93
93
|
・Arduino Uno R3
|
94
94
|
・Seeed Studio CAN-BUSシールドV2
|
95
|
-
・SAMSUNG microSD HC 32GB
|
95
|
+
・SAMSUNG microSD HC 32GB
|
96
|
+
|
97
|
+
### 今後やりたいこと
|
98
|
+
400us間隔で来るCAN信号のログ保存を考えています。ログデータは1信号辺り21byteです。
|
6
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
microSDの読み書き時間について
|
body
CHANGED
File without changes
|
5
追記
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
【Arduino】microSDの読み書きについて
|
1
|
+
【Arduino】microSDの読み書き時間について
|
body
CHANGED
File without changes
|
4
追記
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
microSDの読み書きについて
|
1
|
+
【Arduino】microSDの読み書きについて
|
body
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
ArduinoでmicroSDに文字の読み書きをしています。
|
3
3
|
その際の処理時間に差があることに気づきました。
|
4
4
|
それは初回読み書き時と512byte読み書きするごとに処理時間の遅延が発生していました。
|
5
|
+
|
5
|
-
通常48us程度で終わる
|
6
|
+
1byte書き込みは通常48us程度で終わるが、2500us以上の処理時間を要していました。
|
6
7
|
これは読み込みと書き込みに共通して起こる現象でした。
|
7
8
|
そこで以下の質問です。
|
8
9
|
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -47,7 +47,7 @@
|
|
47
47
|
while (!flg)
|
48
48
|
{
|
49
49
|
s_time = micros(); //起動経過時間をマイクロ秒(us)で返す
|
50
|
-
file.print('1');
|
50
|
+
file.print('1'); //1byte書き込み
|
51
51
|
e_time = micros(); //起動経過時間をマイクロ秒(us)で返す
|
52
52
|
if ((e_time - s_time) >= 60)
|
53
53
|
{
|
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -80,6 +80,7 @@
|
|
80
80
|
1 19468
|
81
81
|
513 2816
|
82
82
|
1025 2516
|
83
|
+
1537 2520
|
83
84
|
2049 2516
|
84
85
|
-----省略-----
|
85
86
|
23553 2536
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -46,9 +46,9 @@
|
|
46
46
|
bool flg = 0;
|
47
47
|
while (!flg)
|
48
48
|
{
|
49
|
-
s_time = micros(); //起動経過時間をマイクロ秒で返す
|
49
|
+
s_time = micros(); //起動経過時間をマイクロ秒(us)で返す
|
50
50
|
file.print('1');
|
51
|
-
e_time = micros(); //起動経過時間をマイクロ秒で返す
|
51
|
+
e_time = micros(); //起動経過時間をマイクロ秒(us)で返す
|
52
52
|
if ((e_time - s_time) >= 60)
|
53
53
|
{
|
54
54
|
c_buf[i] = count;
|