diff --git a/README.md b/README.md index e1b292e..7186be2 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ JJY standard radio wave signal receiver library for arduino. # 機能 -JJYの日本標準時刻データを受信します。C言語標準のtime_t型のUTC基準で時刻を返します。受信後は、タイマにより時刻を刻み維持することもできます。 +JJYの日本標準時刻データを受信します。C言語標準のtime_t型のUTC基準+9で時刻を返します。受信後は、タイマにより時刻を刻み維持することもできます。 -arduinoで再利用しやすいJJY受信ライブラリ的なものがWebに見つけられなかったので作ってみました。 +電波時計モジュールをarduinoで利用しやすい形のJJY受信ライブラリ的なものがWebに見つけられなかったので作ってみました。 電波時計やデータロガーの日時情報など、低電力やインターネット未接続環境での時刻情報の利用ができます @@ -138,7 +138,7 @@ JJY受信モジュールのデータ出力をマイコンの端子変化割り 受信が完了しているかの確認に使用します。受信時刻を取得します。時刻が受信できていない場合は-1を返します。 -getTime()が戻り値を返すには最低2つの内部の時刻受信データが一致する必要があります。JJYは1分かけて時刻情報を送信していますので、受信には最低2分かかります。良好な状態で4分程度、ノイズがある環境だと数分~受信不可となります。 +getTime()が戻り値を返すには最低2つの内部の時刻受信データが一致する必要があります。JJYは1分かけて時刻情報を送信していますので、受信には最低2分かかります。良好な状態で3分程度、ノイズがある環境だと数分~受信不可となります。 [Note] v0.2.0より動作を変更 @@ -148,6 +148,16 @@ getTime()が戻り値を返すには最低2つの内部の時刻受信データ delta_tick()が受信後も供給されている場合は、マイコンのクロック精度で刻んで維持している現在時刻が返されます。現在時刻が確定した時点で内部受信動作は停止します。再び受信動作を実行する場合はbegin()を呼び出します。 +シリアル通信での表示方法の例。 +その他、時分などを抽出したい場合はtm型に変換したあと、要素ごとに利用できます。 +詳細はC言語のtime_t型で調べて下さい。 + +``` +time_t now = jjy.get_time(); +String str = String(ctime(&now)); +Serial.println(str); +``` + [Note]v0.2.0より追加 ## 変数 @@ -227,6 +237,13 @@ lgt8f328の場合は+-60msec程度揺らぐので、100サンプリングでは https://www.nict.go.jp/sts/jjy_signal.html +## データ長のチェック + +マーカー間のデータビット長をカウントして、正しいビット長があるかを検査します。ピット長が規定の長さを満たしていないものは破棄します。 +これらはpayloadlenと呼ばれる配列にカウントデータを格納しlenchek関数で行っています。 +分の情報は8ビット、その他は9ビットです。最後の曜日ビットは利用していませんので、対象外です。 +曜日のデータは、受信したデータではなく、カレンダーの計算により算出されます。 + ## 時刻データのデコード 受信は3回分の受信データを保持しており、同一の時刻を2つ観測した段階で正式時刻として採用します。