回答編集履歴
4
difftimeの使い方が間違っていたので修正
test
CHANGED
@@ -8,19 +8,19 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
```
|
11
|
+
```C
|
12
12
|
|
13
|
-
|
13
|
+
time_t start_time = RTC.get();
|
14
14
|
|
15
|
-
|
15
|
+
... // いろいろ処理
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
|
19
|
+
time_t end_time = RTC.get();
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
|
23
|
+
time_t elapsed = end_time - start_time;
|
24
24
|
|
25
25
|
```
|
26
26
|
|
@@ -98,7 +98,9 @@
|
|
98
98
|
|
99
99
|
|
100
100
|
|
101
|
+
// start_time 〜 current_timeの経過秒数を取得
|
102
|
+
|
101
|
-
elapsed_time = difftime(
|
103
|
+
elapsed_time = difftime(current_time, start_time);
|
102
104
|
|
103
105
|
}
|
104
106
|
|
3
コード間違い修正
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
time_t elapsed = end_time -
|
23
|
+
time_t elapsed = end_time - start_time;
|
24
24
|
|
25
25
|
```
|
26
26
|
|
2
一部修正
test
CHANGED
@@ -126,4 +126,4 @@
|
|
126
126
|
|
127
127
|
```
|
128
128
|
|
129
|
-
|
129
|
+
DS3231用ライブラリを使う限り、標準関数版の`difftime`、更には標準の`time.h`で宣言される各種time関連関数は、使用をあきらめなければならないようです。
|
1
改行位置修正
test
CHANGED
@@ -1,14 +1,10 @@
|
|
1
|
-
手持ちのArduinoUNOを引っ張り出して確認してみました。とは言えRTCのDS3231を実装して試したわけではないので、
|
1
|
+
手持ちのArduinoUNOを引っ張り出して確認してみました。とは言えRTCのDS3231を実装して試したわけではないので、ビルドが通るまでしか確認できてませんが。
|
2
|
-
|
3
|
-
ビルドが通るまでしか確認できてませんが。
|
4
2
|
|
5
3
|
|
6
4
|
|
7
5
|
結論としては、Cの標準関数版の`difftime`関数は使えないので、代替して何とかする必要があります。
|
8
6
|
|
9
|
-
`time_t`型は本来、必ずしも秒単位ではないですが、Arduinoの[Timeライブラリ](https://github.com/PaulStoffregen/Time)だと、`time_t`型は秒単位です。
|
7
|
+
`time_t`型は本来、必ずしも秒単位ではないですが、Arduinoの[Timeライブラリ](https://github.com/PaulStoffregen/Time)だと、`time_t`型は秒単位です。なので、Arduinoのプロジェクトに限っては秒として扱って問題無いはずです。
|
10
|
-
|
11
|
-
なので、Arduinoのプロジェクトに限っては秒として扱って問題無いはずです。
|
12
8
|
|
13
9
|
|
14
10
|
|
@@ -110,7 +106,7 @@
|
|
110
106
|
|
111
107
|
```
|
112
108
|
|
113
|
-
|
109
|
+
ビルドの結果です。
|
114
110
|
|
115
111
|
```
|
116
112
|
|
@@ -130,4 +126,4 @@
|
|
130
126
|
|
131
127
|
```
|
132
128
|
|
133
|
-
DS3231用ライブラリを使う限り、標準関数版の`difftime`、更には標準の`time.h`で宣言される各種time関連関数は、使用をあきらめなければならないようです。
|
129
|
+
結論として、DS3231用ライブラリを使う限り、標準関数版の`difftime`、更には標準の`time.h`で宣言される各種time関連関数は、使用をあきらめなければならないようです。
|