Untitled

 avatar
unknown
plain_text
a month ago
1.0 kB
2
Indexable
/*
 * scheduler.h
 *
 *  Created on: Dec 7, 2022
 *      Author: MihaiDaraban
 */

#ifndef SCHEDULER_H_
#define SCHEDULER_H_

#include <stdbool.h>
#include <stdint.h>

#define TASK_COUNT 3 /* Numarul de task-uri din sistem */

typedef enum {Ready , Running, Waiting, Stop} taskState;

typedef struct taskControlBlock{
    void (*funct)();        /* pointer la task */
    uint8_t taskPeriod;     /* perioada de executie a unui Task*/
    uint8_t taskDelay;      /* delay de executie a unui task */
    bool periodicTask;      /* false - one time run, true - periodic Task */
    uint8_t elapsedTime;    /* timpul scurs de la ultima rulare a Task-ului*/
    taskState state;        /* starea curenta a Task-ului */
} tCB;

/* Lista de task-uri*/
extern tCB taskList[TASK_COUNT];

void scheduler(void); /* Planificator sistem de operare */

tCB initTask(void (*funct)(), uint8_t taskPeriod, uint8_t taskDelay, bool periodicTask); /* Initializare proprietati task */

#endif /* SCHEDULER_H_ */
Leave a Comment