⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4avros_tasks.h

📁 4avrOS realtime OS for AVR
💻 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 + -