回答編集履歴

4

difftimeの使い方が間違っていたので修正

2018/04/17 00:42

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -8,19 +8,19 @@
8
8
 
9
9
 
10
10
 
11
- ```
11
+ ```C
12
12
 
13
- time_t start_time = RTC.get();
13
+ time_t start_time = RTC.get();
14
14
 
15
- ... // いろいろ処理
15
+ ... // いろいろ処理
16
16
 
17
17
 
18
18
 
19
- time_t end_time = RTC.get();
19
+ time_t end_time = RTC.get();
20
20
 
21
21
 
22
22
 
23
- time_t elapsed = end_time - start_time;
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(start_time, current_time);
103
+ elapsed_time = difftime(current_time, start_time);
102
104
 
103
105
  }
104
106
 

3

コード間違い修正

2018/04/17 00:42

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- time_t elapsed = end_time - elapsed;
23
+ time_t elapsed = end_time - start_time;
24
24
 
25
25
  ```
26
26
 

2

一部修正

2018/04/16 13:34

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -126,4 +126,4 @@
126
126
 
127
127
  ```
128
128
 
129
- 結論として、DS3231用ライブラリを使う限り、標準関数版の`difftime`、更には標準の`time.h`で宣言される各種time関連関数は、使用をあきらめなければならないようです。
129
+ DS3231用ライブラリを使う限り、標準関数版の`difftime`、更には標準の`time.h`で宣言される各種time関連関数は、使用をあきらめなければならないようです。

1

改行位置修正

2018/04/16 13:27

投稿

dodox86
dodox86

スコア9183

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関連関数は、使用をあきらめなければならないようです。