StuBS
Clock Class Reference

The Clock implements the device for the real time clock, providing an interface to retrieve the current date/time. More...

#include <device/clock.h>

Inheritance diagram for Clock:
[legend]
Collaboration diagram for Clock:
[legend]

Public Member Functions

 Clock ()
 Constructor.
 
void init ()
 Initialize Clock and its interrupts.
 
uint32_t getTimestamp () const
 Get current time stamp. More...
 
DateTime getDateTime () const
 Get current date and time. More...
 
bool prologue () override
 Prologue for Real Time Clock Since the RTC can cause three different interrupts, the prologue is required to determine the source. More...
 
void epilogue () override
 Epilogue for Real Time Clock. More...
 
- Public Member Functions inherited from Gate
 Gate ()
 Constructor.
 
virtual ~Gate ()
 Destructor. More...
 
virtual bool prologue ()=0
 Device-specific interrupt handling routine that is executed immediately after the interrupt occurs (asynchronously). More...
 
virtual void epilogue ()
 Possibly delayed, synchronously executed Device-specific interrupt handling routine. More...
 

Additional Inherited Members

- Protected Types inherited from RTC
enum  Interrupt {
  NONE = 0 ,
  UPDATE = 1 << 4 ,
  ALARM = 1 << 5 ,
  PERIODIC = 1 << 6
}
 Possible Interrupt sources. More...
 
enum  PeriodicFrequency {
  FREQ_NONE = 0 ,
  FREQ_8192HZ = 3 ,
  FREQ_4096HZ = 4 ,
  FREQ_2048HZ = 5 ,
  FREQ_1024HZ = 6 ,
  FREQ_512HZ = 7 ,
  FREQ_256HZ = 8 ,
  FREQ_128HZ = 9 ,
  FREQ_64HZ = 10 ,
  FREQ_32HZ = 11 ,
  FREQ_16HZ = 12 ,
  FREQ_8HZ = 13 ,
  FREQ_4HZ = 14 ,
  FREQ_2HZ = 15
}
 Frequencies for periodic interval. More...
 
- Static Protected Member Functions inherited from RTC
static void setPeriodic (enum PeriodicFrequency freq)
 Set a periodic interrupt interval. More...
 
static void setAlarm (uint8_t hour, uint8_t minute, uint8_t second)
 Set an alarm. More...
 
static void receiveInterrupt (Interrupt i, bool enable)
 Enable or disable an interrupt source. More...
 
static Interrupt getSource ()
 Get the source of the last interrupt. More...
 
static DateTime getDateTime ()
 Get current date and time. More...
 

Detailed Description

The Clock implements the device for the real time clock, providing an interface to retrieve the current date/time.

Instead of reading several CMOS registers on each call to Clock::getDateTime / Clock::getTimestamp() (which is quite expensive), the update interrupt is used to keep track of the current timestamp in a local variable.

Member Function Documentation

◆ getTimestamp()

uint32_t Clock::getTimestamp ( ) const
inline

Get current time stamp.

Returns
seconds since Unix epoch

◆ getDateTime()

DateTime Clock::getDateTime ( ) const
inline

Get current date and time.

Returns
the current date and time

◆ prologue()

bool Clock::prologue ( )
overridevirtual

Prologue for Real Time Clock Since the RTC can cause three different interrupts, the prologue is required to determine the source.

Returns
true if the epilogue has to be executed.

Implements Gate.

◆ epilogue()

void Clock::epilogue ( )
overridevirtual

Epilogue for Real Time Clock.

Updates the time on the screen

Reimplemented from Gate.


The documentation for this class was generated from the following files: