Tiberiu Chibici
17342b6665
==================================================== Mainly changed: Tasking + Implemented multitasking + Switching works ? TODO: Fix other not working tasking routines
24 lines
462 B
C
24 lines
462 B
C
#include <time.h>
|
|
#include "clock.h"
|
|
|
|
#define MILISECONDS_IN_DAY 86400000
|
|
|
|
volatile TimeSystem _internal_time;
|
|
uint32 _internal_frequency_hz;
|
|
|
|
extern void TaskSwitch (_RegsStack32* regs);
|
|
|
|
void TimeHandler(_RegsStack32* r)
|
|
{
|
|
if (_internal_frequency_hz == 0) return;
|
|
|
|
_internal_time.Time += 1000/_internal_frequency_hz;
|
|
if (_internal_time.Time >= MILISECONDS_IN_DAY)
|
|
{
|
|
_internal_time.Date++;
|
|
_internal_time.Time-=MILISECONDS_IN_DAY;
|
|
}
|
|
|
|
TaskSwitch(r);
|
|
}
|