Newer
Older
tree-os / src / kernel / task / osTasks.c
@lukas lukas on 30 Jun 2021 695 bytes add interrupts
#include <osTasks.h>
#include <task.h>
#include <_stdio.h>
#include <stdint.h>
#include <alloc.h>

Task mainTask;
Task printerTask;

void printLoop() {
    clearScreen();
    setTextStyle(0x0F);
    while (1) {
        Message* message = popMessage(&printerTask);
        if (message == 0) {
            yield();
            continue;
        }
        putChars(message->data, message->size);
        free(message->data);
        free(message);
    }
}

void initOSTasks() {
    setRunningTask(&mainTask);
    createTask(&printerTask, (uint32_t) printLoop, 0x0, 0x0);
    schedule(&printerTask);
    // more tasks . . .
    yields();
}

inline Task* getPrinterTask() {
    return &printerTask;
}