C++ Crashkurs
Ticker Class Reference
The Ticker device demonstrates HPET interrupts. More...
#include <device/ticker.h>
Inheritance diagram for Ticker:
Collaboration diagram for Ticker:
Public Member Functions | |
bool | windup (uint64_t us) |
Windup / initialize. More... | |
bool | prologue () override |
Prologue of timer interrupts. More... | |
void | epilogue () override |
Epilogue of timer interrupts. More... | |
uint64_t | interval () const |
Retrieve the interrupt interval. More... | |
void | activate () |
Activate the timer. More... | |
void | stop () |
Stop the timer. More... | |
Public Member Functions inherited from Gate | |
Gate () | |
Constructor. | |
virtual | ~Gate () |
Destructor. More... | |
Detailed Description
The Ticker device demonstrates HPET interrupts.
Periodic HPET interrupts increase the counter, which is displayed on a designated spot on the screen and shows the current systems runtime.
Member Function Documentation
bool Ticker::windup | ( | uint64_t | us | ) |
Windup / initialize.
Assigns itself to the Plugbox and initializes a HPET::Comparator in such a way that regular interrupts are triggered approx. every us
microseconds when Ticker::activate() is called.
- Note
- This method must find a comparator capable of periodic interrupts.
- For IOAPIC::config use Trigger Mode `LEVEL` with Polarity `LOW` to ensure operation on both Qemu/KVM and our test hardware.
- Parameters
-
us Desired interrupt interval in microseconds.
- Returns
- Indicates if the interval could be set.
|
overridevirtual |
Prologue of timer interrupts.
- Returns
true
if the interrupt was issued by the HPET and Ticker::epilogue should be executed.
Implements Gate.
|
overridevirtual |
Epilogue of timer interrupts.
Increases and displays the counter value (uptime)
Reimplemented from Gate.
|
inline |
Retrieve the interrupt interval.
- Returns
- Interval in microseconds
|
inline |
Activate the timer.
|
inline |
Stop the timer.
The documentation for this class was generated from the following files:
- device/ticker.h
- device/ticker.cc