Hi! I am trying to implement a software real-time clock on the HC12 using the timer module. I am pretty much unable to do it at this point and was hoping that someone could point me in the right direction -- perhaps even coded examples that could serve as a way to better understand it. I need to keep track of a 24 hour day, no need for any actual dates. I can code using either assembler or C++. The clock should run independently so other code can be inserted without effort. Thanks for all and any help! Christian

Software Real-Time Clock on HC12
Started by ●March 2, 2006
Reply by ●March 2, 20062006-03-02
"Christian Winter" <cwinter@gmail.com> wrote in message news:1141307328.634244.164220@p10g2000cwp.googlegroups.com...> Hi! > > I am trying to implement a software real-time clock on the HC12 using > the timer module. I am pretty much unable to do it at this point and > was hoping that someone could point me in the right direction -- > perhaps even coded examples that could serve as a way to better > understand it. I need to keep track of a 24 hour day, no need for any > actual dates. I can code using either assembler or C++. The clock > should run independently so other code can be inserted without effort.I suggest you setup a heartbeat interrupt - say 5ms or 1ms, depending on the granularity you need - and do the time maintenance therein. Steve http://www.fivetrees.com
Reply by ●March 2, 20062006-03-02
if (RTC_tick>= XX ){ seconds++; RTC_tick = 0; if (seconds>=60){ minutes++; seconds = 0; } if (minutes>=60){ hours++; minutes = 0; } if (hours>=24){ days++; hours = 0; } } You have to define XX based on the heatbeat time you setup. Eric
Reply by ●March 2, 20062006-03-02
With "heartbeat" do you mean using the real-time interrupts? If so, it would be best if I could set it up such that it is called every second to increment the clock. I also found someone suggesting to use the pulse-width modulator, but I am unsure as to how to do that. Getting out the HC12 data sheet again...
Reply by ●March 3, 20062006-03-03
"Christian Winter" <cwinter@gmail.com> wrote in message news:1141351790.680296.112940@e56g2000cwe.googlegroups.com...> With "heartbeat" do you mean using the real-time interrupts?I mean use one of the timers to generate a regular interrupt.> If so, it > would be best if I could set it up such that it is called every second > to increment the clock.If your only realtime requirement is updating the clock, then sure. But one often needs to have finer time control than 1s.> I also found someone suggesting to use the pulse-width modulator, but I > am unsure as to how to do that.Errrr.... PWM is not directly appropriate. However the timer may well be a potential interrupt source.> Getting out the HC12 data sheet again...Good plan ;). Steve http://www.fivetrees.com
Reply by ●March 3, 20062006-03-03
"Steve at fivetrees" <steve@NOSPAMTAfivetrees.com> writes:> "Christian Winter" <cwinter@gmail.com> wrote > > > With "heartbeat" do you mean using the real-time interrupts? > > I mean use one of the timers to generate a regular interrupt. > > > If so, it > > would be best if I could set it up such that it is called every second > > to increment the clock. > > If your only realtime requirement is updating the clock, then sure. But one > often needs to have finer time control than 1s. > > > I also found someone suggesting to use the pulse-width modulator, but I > > am unsure as to how to do that. > > Errrr.... PWM is not directly appropriate. However the timer may well be a > potential interrupt source. > > > Getting out the HC12 data sheet again... > > Good plan ;).Looking at the data manual finds the Clock Generation Module, Realtime Interrupt. Interrupts occur at one of eight program-selectable rates in binary fractions of oscillator frequency. Use a power-of-two oscillator and you can get exact time-of-day; otherwise, throw in a fudge factor from time to time.
