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

📄 scheduler.h

📁 MP3播放器详细设计方案
💻 H
字号:
/*H**************************************************************************
* NAME:         scheduler.h         
*----------------------------------------------------------------------------
* Copyright (c) 2002 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      snd1c-refd-nf-3_0_0      
* REVISION:     1.7     
*----------------------------------------------------------------------------
* PURPOSE:
* This file contains the scheduler definition and the task function to be
* executed by the scheduler
*
* NOTE:
* SCHEDULER_TICK & FPER are defined in config.h
*
*****************************************************************************/

#ifndef _SCHEDULER_H_
#define _SCHEDULER_H_

/*_____ I N C L U D E S ____________________________________________________*/

#include "modules\mode\mode_task.h"         /* mode task definition */
#include "modules\mem\mem_task.h"           /* memory task definition */
#include "modules\display\disp_task.h"      /* display task definition */
#include "modules\kbd\kbd_task.h"           /* memory task definition */
#include "modules\mass\usb_task.h"          /* usb task definition */

extern bit         connected;

/*_____ M A C R O S ________________________________________________________*/

/*----- Scheduler Types -----*/
#define SCH_TIMED       0
#define SCH_TASK        1
#define SCH_FREE        2

/*----- Scheduler Timer -----*/
#define SCH_TIMER0      0
#define SCH_TIMER1      1
#define SCH_TIMER2      2


/*----- Scheduler Configuration -----*/
#define SCH_TYPE        SCH_FREE        /* SCH_TIMED, SCH_TASK, SCH_FREE */
#define SCH_TIMER       SCH_TIMER0      /* SCH_TIMER0, SCH_TIMER1, SCH_TIMER2 */

/*----- Scheduler Timer Configuration -----*/
#define TIM_ADJUST      (Byte)4         /* to be modified for timing adjustment */
#define TIM_LOW         LOW(65536 - (SCHEDULER_TICK * (FPER / 6)) + TIM_ADJUST)
#define TIM_HIGH        HIGH(65536 - (SCHEDULER_TICK * (FPER / 6)))

/*----- Task Definitions -----*/
#define Task_1_init()   disp_task_init()
#define Task_2_init()   mode_task_init()
#define Task_3_init()   usb_task_init()
#define Task_4_init()   mem_task_init()
#define Task_5_init()   kbd_task_init()
#define Task_6_init()   
#define Task_7_init()   
#define Task_8_init()
#define Task_9_init()
#define Task_10_init()

#define Task_1_fct()    mode_task()
#define Task_2_fct()    if (connected) usb_task()
#define Task_3_fct()    mem_task()
#define Task_4_fct()    disp_task()
#define Task_5_fct()    kbd_task()
#define Task_6_fct()
#define Task_7_fct()
#define Task_8_fct()
#define Task_9_fct()
#define Task_10_fct()


/*_____ D E F I N I T I O N ________________________________________________*/


/*_____ D E C L A R A T I O N ______________________________________________*/

void    sch_scheduler_init(void);
void    sch_scheduler(void);
void    sch_default_fct (void);

#if (SCH_TYPE == SCH_FREE)
  #define Sch_new_schedule()
  #define Sch_call_next_task()
#elif (SCH_TYPE == SCH_TIMED)
  #define Sch_new_schedule()      while (!sch_tick_flag); sch_tick_flag = FALSE
  #define Sch_call_next_task()
#elif (SCH_TYPE == SCH_TASK)
  #define Sch_new_schedule()
  #define Sch_call_next_task()    while (!sch_tick_flag); sch_tick_flag = FALSE
#endif

#endif /* _SCHEDULER_H_ */

⌨️ 快捷键说明

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