add vorgabe09
This commit is contained in:
68
c_os/devices/PIT.cc
Executable file
68
c_os/devices/PIT.cc
Executable file
@ -0,0 +1,68 @@
|
||||
/*****************************************************************************
|
||||
* *
|
||||
* P I T *
|
||||
* *
|
||||
*---------------------------------------------------------------------------*
|
||||
* Beschreibung: Programmable Interval Timer. *
|
||||
* *
|
||||
* Autor: Michael Schoettner, 3.7.2022 *
|
||||
*****************************************************************************/
|
||||
|
||||
#include "devices/PIT.h"
|
||||
#include "kernel/IOport.h"
|
||||
#include "kernel/Globals.h"
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Methode: PIT::interval *
|
||||
*---------------------------------------------------------------------------*
|
||||
* Beschreibung: Zeitinervall programmieren. *
|
||||
* *
|
||||
* Parameter: *
|
||||
* us: Zeitintervall in Mikrosekunden, nachdem periodisch ein *
|
||||
* Interrupt erzeugt werden soll. *
|
||||
*****************************************************************************/
|
||||
void PIT::interval (int us) {
|
||||
|
||||
/* hier muss Code eingefuegt werden */
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Methode: PIT::plugin *
|
||||
*---------------------------------------------------------------------------*
|
||||
* Beschreibung: Unterbrechungen fuer den Zeitgeber erlauben. Ab sofort *
|
||||
* wird bei Ablauf des definierten Zeitintervalls die *
|
||||
* Methode 'trigger' aufgerufen. *
|
||||
*****************************************************************************/
|
||||
void PIT::plugin () {
|
||||
|
||||
/* hier muss Code eingefuegt werden */
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Methode: PIT::trigger *
|
||||
*---------------------------------------------------------------------------*
|
||||
* Beschreibung: ISR fuer den Zeitgeber. Wird aufgerufen, wenn der *
|
||||
* Zeitgeber eine Unterbrechung ausloest. Anzeige der Uhr *
|
||||
* aktualisieren und Thread wechseln durch Setzen der *
|
||||
* Variable 'forceSwitch', wird in 'int_disp' behandelt. *
|
||||
*****************************************************************************/
|
||||
void PIT::trigger () {
|
||||
|
||||
/* hier muss Code eingefuegt werden */
|
||||
|
||||
// alle 10ms, Systemzeit weitersetzen
|
||||
systime++;
|
||||
|
||||
// Bei jedem Tick einen Threadwechsel ausloesen.
|
||||
// Aber nur wenn der Scheduler bereits fertig intialisiert wurde
|
||||
// und ein weiterer Thread rechnen moechte
|
||||
|
||||
/* hier muss Code eingefuegt werden */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user