A Small Cooperative Multitasking Kernel

Dependencies:   mbed

Committer:
Ivop
Date:
Sun Jul 24 17:15:42 2011 +0000
Revision:
0:73b89fc74e9f
first release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ivop 0:73b89fc74e9f 1 /* Opus Una - A Small Cooperative Multitasking Kernel in C
Ivop 0:73b89fc74e9f 2 *
Ivop 0:73b89fc74e9f 3 * Copyright (C) 2011 by Ivo van Poorten <ivop@euronet.nl>
Ivop 0:73b89fc74e9f 4 * This file is licensed under the terms of the GNU Lesser
Ivop 0:73b89fc74e9f 5 * General Public License, version 3.
Ivop 0:73b89fc74e9f 6 */
Ivop 0:73b89fc74e9f 7
Ivop 0:73b89fc74e9f 8 #include "timer.h"
Ivop 0:73b89fc74e9f 9 #include "kernel.h"
Ivop 0:73b89fc74e9f 10 #include "fastlib/systick.h"
Ivop 0:73b89fc74e9f 11
Ivop 0:73b89fc74e9f 12 extern "C" void SysTick_Handler(void) __irq {
Ivop 0:73b89fc74e9f 13 ou_ticks++;
Ivop 0:73b89fc74e9f 14 ou_update_tasks();
Ivop 0:73b89fc74e9f 15 }
Ivop 0:73b89fc74e9f 16
Ivop 0:73b89fc74e9f 17 void ou_start_timer(void) {
Ivop 0:73b89fc74e9f 18 fl_systick_set_reload_value((96000000/100)-1); // 1/100th of a second (10ms)
Ivop 0:73b89fc74e9f 19 fl_systick_control(FL_ENABLE, FL_ENABLE, FL_ENABLE); // timer, irq, use cclk
Ivop 0:73b89fc74e9f 20 }
Ivop 0:73b89fc74e9f 21
Ivop 0:73b89fc74e9f 22 void ou_idle(void) {
Ivop 0:73b89fc74e9f 23 // save power/cpu time/et cetera...
Ivop 0:73b89fc74e9f 24 }