Claims
- 1. A method of maintaining clock data indicative of time of operation of a power machine, comprising:providing a plurality of clock locations in non-volatile memory; receiving a clock signal indicative of elapsed time; and intermittently writing clock data, indicative of elapsed time, to a first subset, and subsequently to a second subset, of the plurality of clock locations such that, clock data in the first subset of clock locations is different from clock data in the second subset of clock locations.
- 2. The method of claim 1 wherein intermittently writing clock data comprises:periodically writing current clock data to different successive clock locations.
- 3. The method of claim 2 wherein intermittently writing clock data comprises:upon power down of the power machine, writing the current clock data to the next successive clock location.
- 4. The method of claim 2 wherein intermittently writing clock data comprises:updating the current clock data in a volatile memory based on the clock signal; and periodically writing the current clock data, then contained in the volatile memory, to the next successive clock location.
- 5. The method of claim 4 wherein updating the current clock data comprises:upon power up of the power machine, determining which of the plurality of clock locations in non-volatile memory contains a highest elapsed time value; and writing the highest elapsed time value to the volatile memory.
- 6. The method of claim 5 wherein determining which of the plurality of clock locations contains the highest elapsed time value comprises:determining which of the elapsed time values in memory are valid; and comparing the valid elapsed time values to determine which is the highest.
- 7. The method of claim 6 wherein determining which of the elapsed time values are valid comprises:comparing the elapsed time values in the clock locations in non-volatile memory to determine whether they differ from one another by less than a predetermined offset value associated with the period on which the clock locations are written.
- 8. The method of claim 6 wherein determining which of the elapsed time values in non-volatile memory are valid comprises:obtaining a previous stored checksum value associated with each of the elapsed time values; and comparing it with a currently calculated checksum value associated with each of the elapsed time values.
- 9. The method of claim 4 wherein updating the current clock data in a volatile memory, comprises:intermittently writing current clock data to a different one of a plurality of temporary clock locations in volatile memory.
- 10. The method of claim 9 wherein periodically writing the current clock data, then contained in volatile memory to the next successive clock location, comprises:comparing the clock data contained in the temporary clock locations to determine whether they differ by less than a predetermined offset value associated with a frequency with which they are updated; if so, writing clock data in a temporary clock location which is indicative of a highest elapsed time value to the next successive clock location in non-volatile memory; and if not, writing a highest elapsed time value then in the clock locations in non-volatile memory to the temporary clock locations in the volatile memory.
- 11. The method of claim 2 wherein periodically writing current clock data to different successive clock locations in non-volatile memory comprises:selecting the next successive clock location in non-volatile memory; attempting to write the current clock data to a first memory location associated with the selected clock location in non-volatile memory; determining whether the attempted write was successful; if not, attempting to write the current clock data to a next memory location associated with the selected clock location in non-volatile memory; and repeating the steps of determining whether the write was successful and attempting to write to a next memory location until the attempted write is successful or a predetermined number of attempts have been made; and if the attempted write is still unsuccessful selecting the next subsequent successive clock location in non-volatile memory.
- 12. A clock storing time data indicative of time of operation of a power machine, the clock comprising:a timing circuit providing a timing signal; a memory having a plurality of time locations; and a controller coupled to the timing circuit and the memory, the controller maintains an elapsed time value, based on the timing signal, and selects a first time location of the plurality of time locations and updates the selected first time location with the elapsed time value and, after a first update time period, updates a subsequently selected second time location with a first updated elapsed time value.
- 13. The clock of claim 12 wherein the first time location and the second time locations are successive time locations in memory and wherein the controller performs successive write operations to write an updated elapsed time value to each successive time location in memory, the successive write operations being separated by an update period during which the elapsed time value is updated.
- 14. The clock of claim 13 wherein the memory comprises a non-volatile memory.
- 15. The clock of claim 14 wherein each of the plurality of time locations has a predetermined number of associated secondary locations and wherein the controller is configured to determine whether each successive write operation is successful and, if not, attempts to perform the successive write operation in on of the secondary locations.
- 16. The clock of claim 14 wherein the memory includes a volatile memory and wherein the controller maintains the elapsed time value by periodically updating a volatile time location in the volatile memory based on the timing signal.
- 17. The clock of claim 16 wherein the volatile memory includes a plurality of volatile time locations and wherein the controller maintains the elapsed time value by successively updating one of the volatile time locations after a volatile time update period.
- 18. The clock of claim 17 wherein the volatile time update period is shorter than the update time period for updating the time location in non-volatile memory.
- 19. The clock of claim 17 wherein the controller compares the elapsed time values in the plurality of volatile time locations, to ensure that they differ by less than a predetermined amount, prior to performing each of the successive write operations to the time locations in the non-volatile memory.
- 20. The clock of claim 17 wherein the controller, upon power up, determines which of the time locations in non-volatile memory contains a highest valid elapsed time value and writes the highest valid elapsed time value to at least one of the volatile time locations in the volatile memory.
- 21. The clock of claim 17 wherein the controller, upon power down, updates a time location in non-volatile memory with a highest valid elapsed time value in the volatile time locations in the volatile memory.
Parent Case Info
The present application is based on and claims the benefit of U.S. Provisional Patent Application Ser. No. 60/221,810, filed Jul. 31, 2000, the content of which is hereby incorporated by reference in its entirety.
US Referenced Citations (6)
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/221810 |
Jul 2000 |
US |