📄 4avros_tasks.h
字号:
//---------------------------------------------------------------------------------------------------------//
// __ __ ___ ____ _____ //
// / // / / |_ _______/ __ \/ ___/ //
// / // /_/ /| | | / / ___/ / / /\__ \ //
// /__ __/ ___ | |/ / / / /_/ /___/ / //
// /_/ /_/ |_|___/_/ \____//____/ //
// ____ ____ _ _ _ //
// / ___|___ ___ _ __ / ___| ___| |__ ___ __| |_ _| | ___ _ __ //
// | | / _ \ / _ \| '_ \ \___ \ / __| '_ \ / _ \/ _` | | | | |/ _ \ '__| //
// | |__| (_) | (_) | |_) | ___) | (__| | | | __/ (_| | |_| | | __/ | //
// \____\___/ \___/| .__/ |____/ \___|_| |_|\___|\__,_|\__,_|_|\___|_| //
// |_| //
// __ __ //
// / / __ __ ______ ______/ /__ ____ _ //
// / _ \/ // / / __/ // / __/ __/ |/ / ' \ //
// /_.__/\_, / \__/\_,_/_/ \__/|___/_/_/_/ //
// /___/ //
// //
// //
// Copyright 2007 by Curt Van Maanen //
// //
// Version 2007.10.06 //
//---------------------------------------------------------------------------------------------------------//
// 4AvrOS_Tasks.h //
//---------------------------------------------------------------------------------------------------------//
#ifndef _4AVROS_TASKS_H
#define _4AVROS_TASKS_H
/*-----------------------------------------------------------------------------------------------------------
___ ___ ___ ___ _ _ ___ _____ _ ___ _ _____
| \| __| __|_ _| \| | __| |_ _/_\ / __| |/ / __|
| |) | _|| _| | || .` | _| | |/ _ \\__ \ ' <\__ \
|___/|___|_| |___|_|\_|___| |_/_/ \_\___/_|\_\___/
-----------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------
setup your tasks here, up to 16 (__Task0 to __Task15)
more can be added if needed- change 4AvrOS.c (taskAddress variable initialization) and defines below
-------------------------------------------------------------------------------------------------------------
#define __Taskn NameOfTaskFunction
#define __Taskn_priority priority (0-7)
#define __Taskn_init RTR_ON or RTR_OFF
-----------------------------------------------------------------------------------------------------------*/
#define __Task0 demoLed1_Task
#define __Task0_priority 2
#define __Task0_init RTR_ON
#define __Task1 demoLed2_Task
#define __Task1_priority 2
#define __Task1_init RTR_ON
/*-----------------------------------------------------------------------------------------------------------
___ ___ ___ ___ _ _ ___ ___ ___ __ __ _ ___ _ _ ___ ___ ___ ___
| \| __| __|_ _| \| | __| / __| __| \/ | /_\ | _ \ || |/ _ \| _ \ __/ __|
| |) | _|| _| | || .` | _| \__ \ _|| |\/| |/ _ \| _/ __ | (_) | / _|\__ \
|___/|___|_| |___|_|\_|___| |___/___|_| |_/_/ \_\_| |_||_|\___/|_|_\___|___/
-----------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------
create semaphores here, (up to 15)- there is no semaphore 0 (only 1-15)
enum {do_not_remove,firstSema,nSemas}; do_not_remove used to prevent using first one (0)
-----------------------------------------------------------------------------------------------------------*/
#define SEMAPHORES_ON 1 // 0=off, 1=on
enum {do_not_remove,semaTX,nSemas};
/*-----------------------------------------------------------------------------------------------------------
___ _ _ _ _ ___ _____ ___ ___ _ _ ___ ___ ___ _____ ___ _______ _____ ___ ___
| __| | | | \| |/ __|_ _|_ _/ _ \| \| | | _ \ _ \/ _ \_ _/ _ \_ _\ \ / / _ \ __/ __|
| _|| |_| | .` | (__ | | | | (_) | .` | | _/ / (_) || || (_) || | \ V /| _/ _|\__ \
|_| \___/|_|\_|\___| |_| |___\___/|_|\_| |_| |_|_\\___/ |_| \___/ |_| |_| |_| |___|___/
-----------------------------------------------------------------------------------------------------------*/
void init_mystuff(void); // used by 4AvrOS.c
/*-----------------------------------------------------------------------------------------------------------
___ ___ ___ ___ _ _ ___ ___
| \| __| __|_ _| \| | __/ __|
| |) | _|| _| | || .` | _|\__ \
|___/|___|_| |___|_|\_|___|___/
-----------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------
setup function prototype, task number enum
goto_label (gl) is passed to task, used for goto statement
need 2 macros, so 'name' is expanded first
-----------------------------------------------------------------------------------------------------------*/
#define SETUP_TASK2(name,num) void name(uint8_t *gl);\
enum{name ## NUMBER = num};
#define SETUP_TASK(name,num) SETUP_TASK2(name,num)
/*-----------------------------------------------------------------------------------------------------------
SETUP_TASK(taskname,num) for each task (sets up function prototype and enum)
up to 16 tasks, can expand if more needed
nTasks will automatically be set to the number of tasks
-----------------------------------------------------------------------------------------------------------*/
#define nTasks 0 // set to no tasks defined
#ifdef __Task0 // if was defined
SETUP_TASK(__Task0,nTasks) // setup the task (nTasks=0)
#undef nTasks // undefine nTasks
#define nTasks 1 // set it to 1 now
#endif
#ifdef __Task1 // if was defined
SETUP_TASK(__Task1,nTasks) // setup the task (nTasks=1)
#undef nTasks // undefine nTasks
#define nTasks 2 // set it to 2 now
#endif
#ifdef __Task2 // and so on
SETUP_TASK(__Task2,nTasks)
#undef nTasks
#define nTasks 3
#endif
#ifdef __Task3
SETUP_TASK(__Task3,nTasks)
#undef nTasks
#define nTasks 4
#endif
#ifdef __Task4
SETUP_TASK(__Task4,nTasks)
#undef nTasks
#define nTasks 5
#endif
#ifdef __Task5
SETUP_TASK(__Task5,nTasks)
#undef nTasks
#define nTasks 6
#endif
#ifdef __Task6
SETUP_TASK(__Task6,nTasks)
#undef nTasks
#define nTasks 7
#endif
#ifdef __Task7
SETUP_TASK(__Task7,nTasks)
#undef nTasks
#define nTasks 8
#endif
#ifdef __Task8
SETUP_TASK(__Task8,nTasks)
#undef nTasks
#define nTasks 9
#endif
#ifdef __Task9
SETUP_TASK(__Task9,nTasks)
#undef nTasks
#define nTasks 10
#endif
#ifdef __Task10
SETUP_TASK(__Task10,nTasks)
#undef nTasks
#define nTasks 11
#endif
#ifdef __Task11
SETUP_TASK(__Task11,nTasks)
#undef nTasks
#define nTasks 12
#endif
#ifdef __Task12
SETUP_TASK(__Task12,nTasks)
#undef nTasks
#define nTasks 13
#endif
#ifdef __Task13
SETUP_TASK(__Task13,nTasks)
#undef nTasks
#define nTasks 14
#endif
#ifdef __Task14
SETUP_TASK(__Task14,nTasks)
#undef nTasks
#define nTasks 15
#endif
#ifdef __Task15
SETUP_TASK(__Task15,nTasks)
#undef nTasks
#define nTasks 16
#endif
#if (!(nTasks))
#error No Tasks Defined in 4AvrOS_Tasks.h (you want a taskless os?)
#endif
/*---------------------------------------------------------------------------------------------------------*/
#endif // _4AVROS_TASKS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -