my_os.h

来自「avr Rtos 255 Task avr Rtos 255 Task」· C头文件 代码 · 共 60 行

H
60
字号
//////SISTEM OPERARE V1.1.
//adresa registru stiva
#define SPH   0X3E
#define SPL   0x3D

//numarul maxim de taskuri in vector
#define NR_MAX_TASK 4
#define T_EROARE    0
#define T_OK        1
#define TICK_TIME   63 //pentru o diviziune de aproximativ 1 ms
//dimensiunea unui task in memorie (stiva soft si stiva hard alocata)
//deocamdata toate task-urile sunt de acceasi lungime in memorie - 256
#define OSTaskStkSize 100
#define OSTaskStkSizeHard 24
//#define OSTaskStkSizeReg  60
//variabile boolean
//#define TRUE  0x01
//#define FALSE 0x00
//structura unui task
typedef struct t{
  unsigned char adr_task[OSTaskStkSize];//stiva unui task
//eventual si alte elemente pentru prioritate
  unsigned char nr_timpi;//numarul de perioade de ceas (x..) alocate
  unsigned char activ;//starea taskului
} task;

//kernelu'
/*typedef struct kern{
  task t;
  struct kern *t_urm;
}kernel;*/

//contorul task-ului curent
//unsigned char task_curent;
//timpul curent executat
//unsigned char task_time;
//unsigned char t_sph;
//unsigned char t_spl;
//contorul task-ului ultim
//unsigned char task_ultim;
//vectorul de task-uri (procese)/
//task v_task[NR_MAX_TASK];


//functii declarate sistem operare
void start_so(void);//initializeaza sistemul de operare
unsigned char creaza_task(void (*taskf)(void),unsigned char numar);//creaza un task
unsigned char comuta_task(void);//comuta intre task-uri daca este cazul
void get_tsp(void);
void push_var(void);
void pop_var(void);
void init_task(void);
void  PopSP(void);
//void control_on(void);
//void control_off(void);
void lcd_req(void);
void lcd_release(void);
void comuta(void);
void delay_1_ms(unsigned int time);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?