int main(void) { /* initialise kernel */ si_kernel_init(); /* initialise UI channel */ si_ui_init(); /* initialise semaphore */ si_sem_init(&Mutex, 1); /* create tasks */ si_task_create(display_task, &Display_Stack[STACK_SIZE - 1], 10); si_task_create(change_task, &Change_Stack[STACK_SIZE - 1], 20); si_task_create(exit_task, &Exit_Stack[STACK_SIZE - 1], 15); /* start the kernel */ si_kernel_start(); /* will never be here! */ return 0; }
/* clock_init: initialise clock */ void clock_init(void) { /* initialise time and alarm time */ Clock.time.hours = 0; Clock.time.minutes = 0; Clock.time.seconds = 0; Clock.alarm_time.hours = 0; Clock.alarm_time.minutes = 0; Clock.alarm_time.seconds = 0; /* alarm is not enabled */ Clock.alarm_enabled = 0; /* initialise semaphores */ si_sem_init(&Clock.mutex, 1); si_sem_init(&Clock.start_alarm, 0); }
/* init_clock: initialises the clock variables */ void init_clock(void) { /* set starting time */ Hours = 11; Minutes = 59; Seconds = 45; /* initialise semaphore */ si_sem_init(&Mutex, 1); }
void init_task_stop(void) { si_sem_init(&Task_Stop_Sem, 0); }