📄 scheduler.lst
字号:
C51 COMPILER V7.06 SCHEDULER 05/05/2005 12:12:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SCHEDULER
OBJECT MODULE PLACED IN scheduler.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE scheduler.c OPTIMIZE(7,SPEED) BROWSE INCDIR(.\modules\system;.\;.\;.\lib_re
-fd) DEFINE(KEIL) DEBUG OBJECTEXTEND
stmt level source
1 /*C**************************************************************************
2 * NAME: scheduler.c
3 *----------------------------------------------------------------------------
4 * Copyright (c) 2003 Atmel.
5 *----------------------------------------------------------------------------
6 * RELEASE: snd1c-refd-nf-4_0_3
7 * REVISION: 1.8
8 *----------------------------------------------------------------------------
9 * PURPOSE:
10 * This file contains the scheduler routines
11 *
12 * NOTES:
13 * Configuration:
14 * - SCH_TYPE in scheduler.h header file
15 * - SCH_TIMER in scheduler.h header file
16 * Global Variables:
17 * - gl_cpt_tick: byte in data space
18 * - gl_kbd_tick: byte in data space
19 * - gl_mem_tick: byte in data space
20 *
21 *****************************************************************************/
22
23 /*_____ I N C L U D E S ____________________________________________________*/
24
25 #include "config.h" /* system definition */
26 #include "lib_mcu\timer\timer_drv.h" /* timer definition */
27 #include "scheduler.h" /* scheduler definition */
28 #include "board.h"
29
30
31 /*_____ M A C R O S ________________________________________________________*/
32
33
34 /*_____ D E F I N I T I O N ________________________________________________*/
35
36 extern data Byte mode_state; /* task state */
37 extern data Byte gl_cpt_tick; /* general tick counter */
38 extern data Byte gl_kbd_tick; /* keypad tick counter */
39 extern data Byte gl_mem_tick; /* memory tick counter */
40 extern data Byte gl_led_tick; /* led tick counter */
41 extern idata Uint16 gl_act_tick; /* led tick counter */
42
43 #if (SCH_TYPE != SCH_FREE)
bit sch_tick_flag;
#endif
46
47
48 /*_____ D E C L A R A T I O N ______________________________________________*/
49
50 static void sch_time_init (void);
51
52
53 /*F**************************************************************************
54 * NAME: sch_scheduler_init
C51 COMPILER V7.06 SCHEDULER 05/05/2005 12:12:00 PAGE 2
55 *----------------------------------------------------------------------------
56 * PARAMS:
57 *
58 * return:
59 *----------------------------------------------------------------------------
60 * PURPOSE:
61 * Scheduler initialization
62 *----------------------------------------------------------------------------
63 * EXAMPLE:
64 *----------------------------------------------------------------------------
65 * NOTE:
66 * Task_x_init() and Task_x_fct() are defined in scheduler.h
67 *----------------------------------------------------------------------------
68 * REQUIREMENTS:
69 *****************************************************************************/
70 void sch_scheduler_init (void)
71 {
72 1 Task_1_init();
73 1 Task_2_init();
74 1 Task_4_init();
75 1 Task_5_init();
76 1 sch_time_init(); /* start time base */
77 1 Task_6_init();
78 1 }
79
80
81 /*F**************************************************************************
82 * NAME: sch_scheduler
83 *----------------------------------------------------------------------------
84 * PARAMS:
85 *
86 * return:
87 *----------------------------------------------------------------------------
88 * PURPOSE:
89 * Task execution scheduler
90 *----------------------------------------------------------------------------
91 * EXAMPLE:
92 *----------------------------------------------------------------------------
93 * NOTE:
94 *----------------------------------------------------------------------------
95 * REQUIREMENTS:
96 *****************************************************************************/
97 void sch_scheduler (void)
98 {
99 1 while (1)
100 1 {
101 2 Task_1_fct();
102 2 Sch_call_next_task();
103 2
104 2 Task_2_fct();
105 2 Sch_call_next_task();
106 2
107 2 Task_3_fct();
108 2 Sch_call_next_task();
109 2
110 2 Task_4_fct();
111 2 Sch_call_next_task();
112 2
113 2
114 2 Task_5_fct();
115 2 Sch_call_next_task();
116 2 }
C51 COMPILER V7.06 SCHEDULER 05/05/2005 12:12:00 PAGE 3
117 1 }
118
119
120 /*F**************************************************************************
121 * NAME: sch_default_fct
122 *----------------------------------------------------------------------------
123 * PARAMS:
124 *
125 * return:
126 *----------------------------------------------------------------------------
127 * PURPOSE:
128 * This function does nothing
129 *----------------------------------------------------------------------------
130 * EXAMPLE:
131 *----------------------------------------------------------------------------
132 * NOTE:
133 *----------------------------------------------------------------------------
134 * REQUIREMENTS:
135 *****************************************************************************/
136 void sch_default_fct (void)
137 {
138 1 }
139
140
141 #if (SCH_TIMER == SCH_TIMER0)
142 /*F**************************************************************************
143 * NAME: sch_time_init
144 *----------------------------------------------------------------------------
145 * PARAMS:
146 *
147 * return:
148 *----------------------------------------------------------------------------
149 * PURPOSE:
150 * Scheduler time base (timer 0) initialization
151 *----------------------------------------------------------------------------
152 * EXAMPLE:
153 *----------------------------------------------------------------------------
154 * NOTE:
155 * mode 16-bit Timer, Time counter
156 * T0_PRIO to be defined in config.h
157 * TIM_LOW & TIM_HIGH defined in scheduler.h
158 *----------------------------------------------------------------------------
159 * REQUIREMENTS:
160 *****************************************************************************/
161 void sch_time_init (void)
162 {
163 1 T0_init(T0_NOT_GATED, T0_TIMER, T0_MODE_1);
164 1 TL0 = TIM_LOW;
165 1 TH0 = TIM_HIGH;
166 1 t0_set_prio(T0_PRIO); /* set-up priority */
167 1 T0_enable_int(); /* enable interrupt */
168 1 T0_start(); /* start time base */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -