#include <config.h>
#include <sys/time.h>
#include <sys/h8.h>
#include <sys/irq.h>
#include <sys/dmotor.h>
#include <sys/dsound.h>
#include <sys/battery.h>
#include <sys/critsec.h>
#include <sys/timeout.h>
Include dependency graph for systime.c:
Go to the source code of this file.
Functions | |
void | clock_handler (void) |
clock handler triggered on the WDT overflow (every msec) on the NMI | |
void | subsystem_handler (void) |
subsystem handler for every 2nd msec | |
void | task_switch_handler (void) |
task switch handler called every msec | |
void | systime_init (void) |
initialize system timer | |
void | systime_shutdown (void) |
shutdown system timer | |
void | systime_set_switcher (void *switcher) |
set task switcher vector | |
void | systime_set_timeslice (unsigned char slice) |
set multitasking timeslice in ms | |
time_t | get_system_up_time (void) |
retrieve the current system time | |
__asm__ ("\n\.text\n\.align 1\n\.global _get_system_up_time\n\_get_system_up_time:\n\push r2\n\try_again:\n\mov.w @_sys_time+2, r1\n\mov.w @_sys_time, r0\n\mov.w @_sys_time+2, r2\n\cmp r2, r1\n\bne try_again\n\pop r2\n\rts\n\") | |
Variables | |
volatile time_t | sys_time |
current system time in ms | |
volatile unsigned char | tm_timeslice |
task time slice | |
volatile unsigned char | tm_current_slice |
current time remaining | |
void * | tm_switcher_vector |
pointer to task switcher |
Definition in file systime.c.
|
|
|
clock handler triggered on the WDT overflow (every msec) on the NMI this is the system clock Referenced by systime_init(). |
|
retrieve the current system time
|
|
subsystem handler for every 2nd msec this is the pulse of the system (subsystems). sound, motor and lcd driver calls are initiated here. task_switch_handler is called from here as well. Referenced by systime_init(). |
|
initialize system timer task switcher initialized to empty handler motors turned off Definition at line 270 of file systime.c. References clock_handler(), dm_shutdown(), nmi_vector, ocia_vector, ocib_vector, rom_dummy_handler(), subsystem_handler(), sys_time, systime_shutdown(), T_CR, T_CSR, T_IER, T_OCR, T_OCRA, T_OCRB, task_switch_handler(), TCR_CLOCK_32, TCSR_RESET_ON_A, TIER_ENABLE_OCA, TIER_ENABLE_OCB, tm_current_slice, TM_DEFAULT_SLICE, tm_switcher_vector, tm_timeslice, TOCR_OCRA, TOCR_OCRB, WDT_CNT_MSEC_64, WDT_CNT_PASSWORD, WDT_CSR, WDT_CSR_CLOCK_64, WDT_CSR_ENABLE, WDT_CSR_MODE_WATCHDOG, WDT_CSR_PASSWORD, and WDT_CSR_WATCHDOG_NMI. |
|
set task switcher vector
Definition at line 326 of file systime.c. References tm_switcher_vector. |
|
set multitasking timeslice in ms
Definition at line 333 of file systime.c. References tm_current_slice, and tm_timeslice. |
|
shutdown system timer will also stop task switching and motors. Definition at line 317 of file systime.c. References T_IER, TIER_ENABLE_OCA, TIER_ENABLE_OCB, WDT_CSR, and WDT_CSR_ENABLE. Referenced by systime_init(). |
|
task switch handler called every msec handles swapping between tasks Referenced by systime_init(). |
|
current system time in ms
Definition at line 63 of file systime.c. Referenced by systime_init(). |
|
current time remaining
Definition at line 73 of file systime.c. Referenced by systime_init(), and systime_set_timeslice(). |
|
pointer to task switcher
Definition at line 75 of file systime.c. Referenced by systime_init(), and systime_set_switcher(). |
|
task time slice
Definition at line 72 of file systime.c. Referenced by systime_init(), and systime_set_timeslice(). |
brickOS is released under the
Mozilla Public License.
Original code copyright 1998-2002 by the authors. |