(57)【特許請求の範囲】
【請求項１】
一定時間間隔毎に信号を発生するタイマ手段と、このタイマ手段が発生する信号をカウントして使用時間を累計する累計手段と、この累計手段によって累計された使用時間を表示する表示手段とを備えた電子式アワーメータにおいて、
第０〜第ｎのアドレスを有する不揮発性メモリと、
前記累計手段による前記使用時間の累計中、所定時間ｔ0 が経過する毎に、前記累計使用時間をデータとして前記不揮発性メモリのアドレスに、そのアドレスを１つずつずらしながら順次に書き込む書込手段と、
再起動時、前記不揮発性メモリの第０〜第ｎのアドレスに書き込まれているデータＤ（０）〜Ｄ（ｎ）を読み取り、
Ｄ（ｎ），Ｄ（ｎ−１），Ｄ（ｎ−２）・・・・Ｄ（２），Ｄ（１），Ｄ（０）を第０の数列、
Ｄ（ｎ−１），Ｄ（ｎ−２），Ｄ（ｎ−３）・・・・Ｄ（１），Ｄ（０），Ｄ（ｎ）を第１の数列、
Ｄ（ｎ−２），Ｄ（ｎ−３），Ｄ（ｎ−４）・・・・Ｄ（０），Ｄ（ｎ），Ｄ（ｎ−１）を第２の数列というようにして、
Ｄ（０），Ｄ（ｎ），Ｄ（ｎ−１）・・・・Ｄ（３），Ｄ（２），Ｄ（１）までのｎ種類の数列を作り、
このｎ種類の数列毎に、その数列の最初のデータを始点、最後のデータを終点とし、始点のデータとｍ（ｎ≧ｍ≧１）番目のデータとの差分がｔ0 ・ｍであるか否かの検定を終点のデータまで繰り返して、その検定の成立数を求め、
前記検定の成立数が最大の数列の始点のデータを前記累計使用時間の最新値として使用時間の累計を再開する累計再開手段と
を備えたことを特徴とする電子式アワーメータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、車両や装置などの使用時間を累計し、この累計した使用時間を表示する電子式アワーメータに関するものである。
【０００２】
【従来の技術】
従来より、この種の電子式アワーメータは、取り付けられた車両や装置などのメンテナンスのサイクルや、リースなどの料金計算に利用されている。この電子式アワーメータは、一定時間間隔毎に信号を発生するタイマ手段と、このタイマ手段が発生する信号をカウントして使用時間を累計する累計手段と、この累計手段によって累計された使用時間（累計使用時間）を表示する表示手段とを有している。
【０００３】
この電子式アワーメータでは、車両や装置が運転停止している間、すなわち車両や装置が次に使用されるまでの間、その累計使用時間を保存しておく必要がある。この累計使用時間の保存方法として、揮発性メモリまたはカウンタを常時通電状態とし、そのデータをバックアップする方法がある。また、不揮発性メモリを搭載し、この不揮発性メモリに累計使用時間を記録する方法がある。近年においては、運転停止中の消費電力低減という要求が強く、不揮発性メモリ方式による電子式アワーメータが好まれている。
【０００４】
ところで、不揮発性メモリ方式の電子式アワーメータと類似の構造のものとして、特開昭５９−１９６４１４号公報に「電子式オドメータ」が開示されている。この電子式オドメータは、走行距離を計測し、積算走行距離を表示するものであるが、積算走行距離を累計使用時間に置き換えれば、電子式アワーメータへの転用が可能である。
【０００５】
この電子式オドメータでは、データ記憶個所（アドレス）として＃０〜＃ｎを有する不揮発性メモリを備え、例えば１００ｍ走行する毎に不揮発性メモリのアドレス＃０〜＃ｎに積算走行距離を順次に書き込むようにしている。この場合、アドレス＃ｎに積算走行距離を書き込んだ後は、アドレス＃０に戻る。電源の再投入時およびオートリセット時には、アドレス＃０〜＃ｎに書き込まれている積算走行距離をすべて読み出し、この読み出した積算走行距離の中から最大値を抽出する。そして、この抽出した最大値とその最大値のデータの１回前に書き込まれたデータ、すなわち一つ前のアドレスに書き込まれているデータとの差をとり、これが１００ｍならば、その抽出した最大値を積算走行距離のイニシャル値（最新値）として走行距離の積算を再開する。
【０００６】
もし、上記差が１００ｍでないときは、アドレスを１ずらしてチェックを繰り返し、それより１回前に書き込まれたデータとの差が１００ｍとなるデータを積算走行距離の最新値とする。すなわち、上記差が１００ｍでないときは、１つ前のアドレスに書き込まれているデータと２つ前のアドレスに書き込まれているデータとの差が１００ｍであるか否かを検定し、１００ｍであれば１つ前のアドレスに書き込まれているデータを最新値とし、１００ｍでないときは同様の検定を順次繰り返す。
【０００７】
【発明が解決しようとする課題】
しかしながら、この特開昭５９−１９６４１４号公報に示された「電子式オドメータ」の技術を電子式アワーメータへ転用した場合、不揮発性メモリのアドレスへの累計使用時間の書き込み中に電源電圧が低下すると、その時の書き込みデータは不定となってしまう。この場合、その不定データがアドレス＃１〜＃ｎのデータの中で最大値となると、その不定データと１つ前のアドレスに書き込まれているデータとの差が所定値であるか否かが検定される。この場合、その差は所定値とならないので、１つ前のアドレスに書き込まれているデータと２つ前のアドレスに書き込まれているデータとの差が所定値であるか否かが検定される。ここで、その差が所定値となれば、１つ前のアドレスに書き込まれているデータが最新値とされる。この１つ前のアドレスに書き込まれているデータは、不定データが書き込まれたアドレスの１つ前のアドレスに書き込まれたデータであって、最新値として適切な値とは言えない。すなわち、この場合、適切な値から使用時間の累計を再開することができず、信頼性が低下する。
【０００８】
なお、信頼性を高めるために、大容量のコンデンサ等によるバックアップ回路を設け、不揮発性メモリへのデータ書き込み中における電源電圧の低下対策を図ることが考えられる。しかし、この場合、コストアップとなるばかりでなく、バックアップ回路の収容スペースを確保しなければならずコンパクト化が阻害される。
【０００９】
本発明はこのような課題を解決するためになされたもので、その目的とするところは、不揮発性メモリへのデータ書き込み中における電源電圧の低下に対し、バックアップ回路を設けることなく、信頼性を高めることのできる電子式アワーメータを提供することにある。
【００１０】
【課題を解決するための手段】
このような目的を達成するために、本発明は、一定時間間隔毎に信号を発生するタイマ手段と、このタイマ手段が発生する信号をカウントして使用時間を累計する累計手段と、この累計手段によって累計された使用時間を表示する表示手段とを備えた電子式アワーメータにおいて、第０〜第ｎのアドレスを有する不揮発性メモリと、累計手段による使用時間の累計中、所定時間ｔ0 が経過する毎に、累計使用時間をデータとして不揮発性メモリのアドレスに、そのアドレスを１つずつずらしながら順次に書き込む書込手段と、再起動時、不揮発性メモリの第０〜第ｎのアドレスに書き込まれているデータＤ（０）〜Ｄ（ｎ）を読み取り、Ｄ（ｎ），Ｄ（ｎ−１），Ｄ（ｎ−２）・・・・Ｄ（２），Ｄ（１），Ｄ（０）を第０の数列、Ｄ（ｎ−１），Ｄ（ｎ−２），Ｄ（ｎ−３）・・・・Ｄ（１），Ｄ（０），Ｄ（ｎ）を第１の数列、Ｄ（ｎ−２），Ｄ（ｎ−３），Ｄ（ｎ−４）・・・・Ｄ（０），Ｄ（ｎ），Ｄ（ｎ−１）を第２の数列というようにして、Ｄ（０），Ｄ（ｎ），Ｄ（ｎ−１）・・・・Ｄ（３），Ｄ（２），Ｄ（１）までのｎ種類の数列を作り、このｎ種類の数列毎に、その数列の最初のデータを始点、最後のデータを終点とし、始点のデータとｍ（ｎ≧ｍ≧１）番目のデータとの差分がｔ0 ・ｍであるか否かの検定を終点のデータまで繰り返して、その検定の成立数を求め、検定の成立数が最大の数列の始点のデータを累計使用時間の最新値として使用時間の累計を再開する累計再開手段とを設けたものである。
【００１１】
したがって、この発明によれば、使用時間の累計中、所定時間ｔ0 が経過する毎に、不揮発性メモリの第０〜第ｎのアドレスに、そのアドレスを１つずつずらしながら、累計使用時間がデータとして順次に書き込まれる。
再起動時、不揮発性メモリの第０〜第ｎのアドレスに書き込まれているデータＤ（０）〜Ｄ（ｎ）が読み取られ、Ｄ（ｎ），Ｄ（ｎ−１），Ｄ（ｎ−２）・・・・Ｄ（２），Ｄ（１），Ｄ（０）を第０の数列、Ｄ（ｎ−１），Ｄ（ｎ−２），Ｄ（ｎ−３）・・・・Ｄ（１），Ｄ（０），Ｄ（ｎ）を第１の数列、Ｄ（ｎ−２），Ｄ（ｎ−３），Ｄ（ｎ−４）・・・・Ｄ（０），Ｄ（ｎ），Ｄ（ｎ−１）を第２の数列というようにして、Ｄ（０），Ｄ（ｎ），Ｄ（ｎ−１）・・・・Ｄ（３），Ｄ（２），Ｄ（１）までのｎ種類の数列が作られ、このｎ種類の数列毎に、始点のデータとｍ番目のデータとの差分がｔ0 ・ｍであるか否かの検定が終点のデータまで繰り返され、その検定の成立数が求められる。
そして、検定の成立数が最大の数列の始点のデータが累計使用時間の最新値として、使用時間の累計が再開される。
【００１４】
【発明の実施の形態】
以下、本発明を実施の形態に基づき詳細に説明する。図２はこの発明の一実施の形態を示す電子式アワーメータのブロック図である。同図において、１はＣＰＵ、２は不揮発性メモリ（ＥＥＰＲＯＭ）、３は液晶表示部、４は水晶発振器である。
【００１５】
ＣＰＵ１は、搭載されているプログラムに従い、次のような処理を行う。
▲１▼水晶発振器４からのシステムクロックを分周し一定時間間隔毎に信号を発生するタイマ処理。
▲２▼タイマ処理により発生する信号をカウントして使用時間を累計する累計処理。
▲３▼累計処理によって累計された使用時間（累計使用時間）を液晶表示部３へ出力して表示する表示処理。
▲４▼所定時間毎に累計使用時間をこの累計使用時間の下位桁に基づいて決定される不揮発性メモリ２のアドレス＃０〜＃ｎに順次に書き込む書込処理。
▲５▼再起動時、不揮発性メモリ２に書き込まれているデータ群が等差数列であることを利用して最新値を検出し、この最新値より使用時間の累計を再開する累計再開処理。
【００１６】
〔累計再開処理〕
ＣＰＵ１が行う累計再開処理について具体的に説明する。ＣＰＵ１は、その動作中、所定時間ｔ0 毎に、累計使用時間Ｔをこの累計使用時間Ｔの下位桁に基づいて決定される不揮発性メモリ２のアドレス＃０〜＃ｎに順次に書き込む。ここで、この実施の形態では、不揮発性メモリ２のアドレス＃０〜＃ｎを＃０〜１９（合計２０番地）、所定時間ｔ0 を０．１時間とする。また、アドレスを決定する累計使用時間Ｔの下位桁を小数点第一位と１の位の数値が偶数（但し、０は偶数とする）であるか奇数であるかで区別し、１の位の数値が偶数である小数点第一位が０〜９の累計使用時間Ｔはアドレス＃０〜＃９へ書き込み、１の位の数値が奇数である小数点第一位が０〜９の累計使用時間Ｔはアドレス＃１０〜＃１９へ書き込むものとする。
【００１７】
この書込方法により、不揮発性メモリ２内のデータ（累計使用時間Ｔ）は最新値の書き込まれているアドレスから逆方向（＃１９→＃０方向）にアドレスを辿り、データを並べてみると、その数列は等差数列となる。この場合、その等差数列の等差は、所定時間ｔ0 を示している。同様に、最古値の書き込まれているアドレスから順方向（＃０→＃１９方向）にアドレスを辿り、データを並べても同様の等差数列となる。このことから、以下のことが言える。
【００１８】
すなわち、任意のアドレスを始点として、データの書き込まれているアドレスを横軸とし、データを縦軸とし、アドレスを逆方向に辿った時のグラフを描くと、図３（ａ）に示すようなノコギリ波状の関数となる場合と、図３（ｂ）に示すようなデータが等差数列で減少して行く一次関数となる場合がある。図３（ｂ）に示すような関数となる場合、すなわちデータが等差数列で減少して行く一次関数となる場合、その一次関数の始点（始点アドレスに書き込まれたデータ）が最新値、終点（終点アドレスに書き込まれたデータ）が最古値となる。また、アドレスを順方向に辿った時、データが等差数列で増加して行く一次関数の終点（終点アドレスに書き込まれたデータ）が最新値、始点（始点アドレスに書き込まれたデータ）が最古値となる。すなわち、一次関数を検出する方法と、その一次関数の始点あるいは終点から最新値を検出する方法がこの発明のポイントとなる。
【００１９】
一次関数であるか否かを検出するために先に述べた等差数列の特徴を利用する。ここでは、最新値より最古値方向にデータを並べる方法、すなわちアドレスを逆方向に辿ってデータを並べる方法で説明する。
最新値が始点であるならば、ｍ番目のデータは最新値に対し、所定時間ｔ0 分（ｔ0 ＊ｍ）小さな値となるはずである。この検定を最古値（ｎ番目のデータ）に至るまで実行すると、そのデータが等差数列で減少して行く一次関数であるならば（図３（ｂ）参照）、その検定結果の成立数はｎとなるはずである。最新値以外のアドレスを始点とした場合（図３（ａ）参照）、検定結果の成立数はｎ以下となる。
【００２０】
すなわち、不揮発性メモリ２のアドレスを第１の変数，書き込まれている累計使用時間を第２の変数としたとき、第１の変数を逆方向に辿ったとき第２の変数が減少して行く等差数列となる一次関数が存在すれば、上記検定結果の成立数がｎとなる始点アドレスが存在する。第１の変数を逆方向に辿ったとき第２の変数が減少して行く等差数列となる一次関数が存在しない場合には、上記検定結果の成立数がｎとなる始点アドレスが存在しないことになる。この場合、上記検定結果の成立数が最大の始点アドレスを求めれば、このアドレスが第１の変数を逆方向に辿ったとき第２の変数が減少して行く等差数列となる一次関数に最も近い関数の始点アドレスとなる。
【００２１】
すなわち、不揮発性メモリ２のアドレスへの累計使用時間の書き込み中に電源電圧が低下し、その時の書き込みデータが不定となった場合、等差数列に乱れが生じ、第１の変数を逆方向に辿ったとき第２の変数が減少して行く等差数列となる一次関数が存在しなくなる。この場合、その一次関数に最も近い関数を求めれば、その関数の始点アドレスと存在しなくなった一次関数の始点アドレスとが同じである確率が極めて高い。そこで、この実施の形態では、上記検定結果の成立数が最大となる始点アドレスを求め、この始点アドレスに書き込まれている累計使用時間Ｔを最新値として使用時間の累計を再開する。
【００２２】
上記検定に際しては下記（１）式を用いる。なお、（１）式においてＩは始点アドレスであり、ＲＯＭ（Ｉ）は始点アドレスＩに書き込まれているデータを示している。また、ＲＯＭ（Ｊ）はアドレスＪに書き込まれているデータを示しており、Ｉ−ｍ≧０のときにはＪ＝Ｉ−ｍとして代入し（（２）式）、Ｉ−ｍ＜０のときにはＪ＝Ｉ−ｍ＋ｎ＋１として代入する（（３）式）。なお、（２）式は、Ｉ≧ｍの場合には、Ｉからみてｍ番地戻ったアドレスのデータをＲＯＭ（Ｊ）とすることを意図している。また、（３）式は、（２）式においてＩ＜ｍとなり、Ｊがマイナス値となった場合には、ｎ番地に戻ることを意図している。また、（４）式は変数ｍの数値範囲を示し、（５）式は変数Ｉの数値範囲を示している。
【００２３】
ＲＯＭ（Ｉ）−ｔ0 ＊ｍ＝ＲＯＭ（Ｊ）    ・・・・（１）
Ｉ−ｍ≧０  Ｊ＝Ｉ−ｍ                  ・・・・（２）
Ｉ−ｍ＜０  Ｊ＝Ｉ−ｍ＋ｎ＋１          ・・・・（３）
１≦ｍ≦ｎ                              ・・・・（４）
０≦Ｉ≦ｎ                              ・・・・（５）
【００２４】
図４に（１）式による検定を実行するプログラムのフローチャートを示す。図５に図４に続いて検定結果の最大値を示す始点アドレスを探し、最新値を検出するプログラムのフローチャートを示す。図１に不揮発性メモリ２のアドレス＃０〜＃１９に書き込まれた累計使用時間および検定結果の成立・不成立の具体例を示す。この場合、所定時間ｔ0 を０．１時間として、不揮発性メモリ２のアドレス＃９〜＃１９には累計使用時間Ｔとして「０．９」〜「１．９」が書き込まれており、アドレス＃０〜＃８には累計使用時間Ｔとして「２．０」〜「２．８」が書き込まれている。また、図中、「１」は「成立」、「０」は不成立を示している。
【００２５】
ＣＰＵ１は、先ず、ループカウンタＩをＩ＝１９としてセットする（図４に示すステップ４０１）。すなわち、始点アドレスを＃１９とし、始点アドレス＃１９に書き込まれている累計使用時間Ｔ（＝１．９）を読み出す（ステップ４０２）。そして、その読み出した累計使用時間Ｔを基準値Ｋにセットする（ステップ４０３）。次に、ループカウンタｍをｍ＝１としてセットし（ステップ４０４）、比較値のポインタＪをＪ＝Ｉ−ｍ＝１９−１＝１８とする（ステップ４０５）。比較値のポインタＪがマイナス値ならば、ステップ４０７にてＪ＝Ｊ＋ｎ＋１とするが、この場合、比較値のポインタＪはプラス値なので直ちにステップ４０８へ進む。
【００２６】
ステップ４０８ではＲＯＭ（Ｊ）すなわちアドレス＃１８に書き込まれている累計使用時間Ｔ（＝１．８）を読み出す。そして、ステップ４０９へ進み、ｍ番目のデータの規格値Ｘを計算する。この場合、Ｘ＝Ｋ−０．１＊ｍ＝１．９−０．１＊１により、Ｘ＝１．８として規格値が求められる。そして、ステップ４１０へ進み、ｍ番目のデータであるＲＯＭ（Ｊ）と規格値Ｘとが一致しているか否かをチェックし、一致していれば結果カウンタＣ（Ｉ）の値を１増加し（ステップ４１１）、一致していなければ直ちにステップ４１２へ進む。この場合、ｍ番目のデータであるＲＯＭ（Ｊ）と規格値Ｘとは、ＲＯＭ（１８）＝Ｘ＝１．８として一致するので、検定結果が「成立」と判定され、結果カウンタＣ（１９）＝１とされる。
【００２７】
ステップ４１２では、次のｍ値、すなわちｍ＝２をセットし、ステップ４０５〜４１１の動作を繰り返す。この場合、ｍ＝１０までは、検定結果が「成立」と判定され、これにより結果カウンタＣ（１９）＝１０とされる。ｍ＝１１となると、ＲＯＭ（８）＝２．８、Ｘ＝Ｋ−０．１＊ｍ＝１．９−０．１＊１１＝０．８により、ＲＯＭ（８）≠Ｘとなるので、検定結果が「不成立」と判定され、結果結果カウンタＣ（１９）の値は増加されない。この場合、以降ｍ＝１９まで、検定結果が「不成立」と判定され、これにより結果カウンタＣ（１９）は最終的にＣ（１９）＝１０とされる。
【００２８】
Ｉ＝１９，ｍ＝１９の処理が終了すれば、ステップ４１３へ進み、Ｉ＝１８としてステップ４０２〜４１２を繰り返す。すなわち、始点アドレスを＃１８として、ステップ４０２〜４１２を繰り返す。そして、最終的にＩ＝０，ｍ＝１９の処理を終了したときに、一連の検定処理動作を終了する。図１の最下行に、始点アドレスを＃１９〜＃０と変化させて行った場合の（１）式の成立個数、すなわち結果カウンタＣ（Ｉ）の最終値を記入している。
【００２９】
ＣＰＵ１は、図４に示した検定処理動作を終了すると、結果カウンタＣ（０）＝１１をＳＴにセットすると共にポインタＰを０にセットする（図５に示すステップ５０１）。そして、ループカウンタＩをＩ＝１とし（ステップ５０２）、ＳＴ＞Ｃ（Ｉ）をチェックする（ステップ５０３）。この場合、ＳＴ＝１１、Ｃ（１）＝１２であるので、ＳＴ＞Ｃ（Ｉ）が成立せず、ステップ５０４を経てステップ５０５へ進む。ステップ５０４では、ＳＴ＝Ｃ（１）＝１２とすると共に、Ｐ＝１とする。ステップ５０５では、次のＩをセットし、ステップ５０３〜５０４の動作を繰り返す。これにより、図１に示した例では、最終的にはＳＴ＝Ｃ（８）＝１９、Ｐ＝８が得られる。すなわち、検定結果の最大値が１９であり、その時の始点アドレスが＃８であることが検出される。ＣＰＵ１は、この検出結果から、アドレス＃８に書き込まれている累計使用時間Ｔ＝２．８を最新値とし、この最新値より使用時間の累計を再開する。
【００３０】
なお、上述においては、アドレス＃０〜＃１９に不定データが含まれない例（理想状態）で説明したが、不揮発性メモリ２のアドレスへの累計使用時間の書き込み中に電源電圧が低下した場合、その時の書き込みデータが不定となってしまう。従来においては、不定データが他のデータに比べて大きかった場合には、誤動作の可能性がある。不定データが存在した場合は、その不定データは破棄し、他のデータから最新データを選択すべきである。データの書き込みを所定時間毎に実行しているので、全てのデータが破壊される可能性は極めて低く、生き残ったデータ群は一次関数の一部がばらついているものの、その特徴までもが破壊されたわけではない。
【００３１】
本実施の形態においては、不揮発性メモリ２に書き込まれているデータ群の始点アドレスを変え、（１）式の成立・不成立を検定している。すなわち、不揮発性メモリ２の第０〜第ｎのアドレスに書き込まれているデータＤ（０）〜Ｄ（ｎ）を読み取り、Ｄ（ｎ），Ｄ（ｎ−１），Ｄ（ｎ−２）・・・・Ｄ（２），Ｄ（１），Ｄ（０）を第０の数列、Ｄ（ｎ−１），Ｄ（ｎ−２），Ｄ（ｎ−３）・・・・Ｄ（１），Ｄ（０），Ｄ（ｎ）を第１の数列、Ｄ（ｎ−２），Ｄ（ｎ−３），Ｄ（ｎ−４）・・・・Ｄ（０），Ｄ（ｎ），Ｄ（ｎ−１）を第２の数列というようにして、Ｄ（０），Ｄ（ｎ），Ｄ（ｎ−１）・・・・Ｄ（３），Ｄ（２），Ｄ（１）までのｎ種類の数列を作り、このｎ種類の数列毎に、その数列の最初のデータを始点、最後のデータを終点とし、始点のデータとｍ（ｎ≧ｍ≧１）番目のデータとの差分がｔ0 ・ｍであるか否かの検定を終点のデータまで繰り返して、その検定の成立数を求め、検定の成立数が最大の数列の始点のデータを累計使用時間の最新値として使用時間の累計を再開するようにしている。このため、不定データが書き込まれているアドレスを始点アドレスとした場合、検定の成立数は０となる。したがって、不定データを最新値として採用することはあり得ない。この場合、検定の成立数の最も大きい始点アドレス、すなわち第１の変数（不揮発性メモリ２のアドレス）を逆方向に辿ったとき第２の変数（書き込まれている累計使用時間Ｔ）が減少して行く等差数列となる一次関数に最も近い関数の始点アドレスに書き込まれている累計使用時間Ｔ（始点のデータ）を最新値とするから、実質的に不定データが破棄されたのと同じになり、適切な値から使用時間の累計を再開することができ、信頼性が高まる。また、信頼性を高めるために、大容量のコンデンサ等によるバックアップ回路を設けなくてもよく、コストアップが避けられ、コンパクト化も阻害されることがない。
【００３２】
また、上述においては、最新値より最古値方向にデータを並べる方法、すなわちアドレスを逆方向に辿ってデータを並べる方法で説明したが、最古値より最新値方向にデータを並べる方法、すなわちアドレスを順方向に辿ってデータを並べる方法でも同様にして、適切な値から使用時間の累計を再開することができる。この場合、図４および図５に示したフローチャートと同様の処理により、第１の変数（不揮発性メモリ２のアドレス）を順向に辿ったとき第２の変数（書き込まれている累計使用時間Ｔ）が増加して行く等差数列となる一次関数の終点アドレスを求め、この終点アドレスに書き込まれている累計使用時間を最新値として使用時間の累計を再開する。第１の変数を順方向に辿ったとき第２の変数が増加して行く等差数列となる一次関数が存在しない場合には、その一次関数に最も近い関数の終点アドレスを求め、この終点アドレスに書き込まれている累計使用時間を最新値として使用時間の累計を再開する。
【００３３】
【発明の効果】
以上説明したことから明らかなように本発明によれば、再起動時、不揮発性メモリの第０〜第ｎのアドレスに書き込まれているデータＤ（０）〜Ｄ（ｎ）を読み取り、Ｄ（ｎ），Ｄ（ｎ−１），Ｄ（ｎ−２）・・・・Ｄ（２），Ｄ（１），Ｄ（０）を第０の数列、Ｄ（ｎ−１），Ｄ（ｎ−２），Ｄ（ｎ−３）・・・・Ｄ（１），Ｄ（０），Ｄ（ｎ）を第１の数列、Ｄ（ｎ−２），Ｄ（ｎ−３），Ｄ（ｎ−４）・・・・Ｄ（０），Ｄ（ｎ），Ｄ（ｎ−１）を第２の数列というようにして、Ｄ（０），Ｄ（ｎ），Ｄ（ｎ−１）・・・・Ｄ（３），Ｄ（２），Ｄ（１）までのｎ種類の数列を作り、このｎ種類の数列毎に、その数列の最初のデータを始点、最後のデータを終点とし、始点のデータとｍ（ｎ≧ｍ≧１）番目のデータとの差分がｔ０・ｍであるか否かの検定を終点のデータまで繰り返して、その検定の成立数を求め、検定の成立数が最大の数列の始点のデータを累計使用時間の最新値として使用時間の累計を再開するようにしたので、実質的に不定データを破棄して適切な値から使用時間の累計を再開することができるようになり、不揮発性メモリへのデータ書き込み中における電源電圧の低下に対し、バックアップ回路を設けることなく、信頼性を高めることができるようになる。
【図面の簡単な説明】
【図１】  不揮発性メモリのアドレスに書き込まれた累計使用時間および検定結果の成立・不成立の具体例を示す図である。
【図２】  この発明の一実施の形態を示す電子式アワーメータのブロック図である。
【図３】  任意のアドレスを始点としアドレスを横軸，データを縦軸としてアドレスを逆方向に辿った時のグラフを例示する図である。
【図４】  （１）式による検定を実行するプログラムのフローチャートを示す図である。
【図５】  図４に続いて検定結果の最大値を示す始点アドレスを探し最新値を検出するプログラムのフローチャートを示す図である。
【符号の説明】
１…ＣＰＵ、２…不揮発性メモリ（ＥＥＰＲＯＭ）、３…液晶表示部、４…水晶発振器。
【図１】
0003798461.tif 000002
【図２】
0003798461.tif 000003
【図３】
0003798461.tif 000004
【図４】
0003798461.tif 000005
【図５】
0003798461.tif 000006