📄 scheduler.lst
字号:
C51 COMPILER V7.20 SCHEDULER 03/24/2007 10:02:35 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE SCHEDULER
OBJECT MODULE PLACED IN .\Output\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 PRINT(.\Output\scheduler.lst) OBJECT(.\Output\scheduler.obj)
line 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
29 extern void LCDDisplayInit();
30 extern void prints(unsigned char * temp);
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 gl_cpt_tick; /* general tick counter */
37 extern data Byte gl_kbd_tick; /* keypad tick counter */
38 extern data Byte gl_mem_tick; /* memory tick counter */
39 extern data Byte gl_led_tick; /* led tick counter */
40 extern idata Uint16 gl_act_tick; /* led tick counter */
41
42 #if (SCH_TYPE != SCH_FREE)
bit sch_tick_flag;
#endif
45
46
47 /*_____ D E C L A R A T I O N ______________________________________________*/
48
49 static void sch_time_init (void);
50
51
52 /*F**************************************************************************
53 * NAME: sch_scheduler_init
54 *----------------------------------------------------------------------------
C51 COMPILER V7.20 SCHEDULER 03/24/2007 10:02:35 PAGE 2
55 * PARAMS:
56 *
57 * return:
58 *----------------------------------------------------------------------------
59 * PURPOSE:
60 * Scheduler initialization
61 *----------------------------------------------------------------------------
62 * EXAMPLE:
63 *----------------------------------------------------------------------------
64 * NOTE:
65 * Task_x_init() and Task_x_fct() are defined in scheduler.h
66 *----------------------------------------------------------------------------
67 * REQUIREMENTS:
68 *****************************************************************************/
69 void sch_scheduler_init (void)
70 {
71 1 disp_task_init();
72 1 mode_task_init();
73 1 mem_task_init();
74 1 kbd_task_init();
75 1 #if (SCH_TYPE != SCH_FREE)
sch_tick_flag = FALSE;
#endif
78 1 sch_time_init(); /* start time base */
79 1 }
80
81
82 /*F**************************************************************************
83 * NAME: sch_scheduler
84 *----------------------------------------------------------------------------
85 * PARAMS:
86 *
87 * return:
88 *----------------------------------------------------------------------------
89 * PURPOSE:
90 * Task execution scheduler
91 *----------------------------------------------------------------------------
92 * EXAMPLE:
93 *----------------------------------------------------------------------------
94 * NOTE:
95 *----------------------------------------------------------------------------
96 * REQUIREMENTS:
97 *****************************************************************************/
98 void sch_scheduler (void)
99 {
100 1 while (1)
101 1 {
102 2 mode_task();
103 2 Sch_call_next_task();
104 2
105 2 if (connected) usb_task();
106 2 Sch_call_next_task();
107 2
108 2 mem_task();
109 2 Sch_call_next_task();
110 2
111 2 disp_task();
112 2 Sch_call_next_task();
113 2
114 2
115 2 kbd_task();
116 2 Sch_call_next_task();
C51 COMPILER V7.20 SCHEDULER 03/24/2007 10:02:35 PAGE 3
117 2 }
118 1 }
119
120
121 /*F**************************************************************************
122 * NAME: sch_default_fct
123 *----------------------------------------------------------------------------
124 * PARAMS:
125 *
126 * return:
127 *----------------------------------------------------------------------------
128 * PURPOSE:
129 * This function does nothing
130 *----------------------------------------------------------------------------
131 * EXAMPLE:
132 *----------------------------------------------------------------------------
133 * NOTE:
134 *----------------------------------------------------------------------------
135 * REQUIREMENTS:
136 *****************************************************************************/
137 void sch_default_fct (void)
138 {
139 1 }
140
141
142 #if (SCH_TIMER == SCH_TIMER0)
143 /*F**************************************************************************
144 * NAME: sch_time_init
145 *----------------------------------------------------------------------------
146 * PARAMS:
147 *
148 * return:
149 *----------------------------------------------------------------------------
150 * PURPOSE:
151 * Scheduler time base (timer 0) initialization
152 *----------------------------------------------------------------------------
153 * EXAMPLE:
154 *----------------------------------------------------------------------------
155 * NOTE:
156 * mode 16-bit Timer, Time counter
157 * T0_PRIO to be defined in config.h
158 * TIM_LOW & TIM_HIGH defined in scheduler.h
159 *----------------------------------------------------------------------------
160 * REQUIREMENTS:
161 *****************************************************************************/
162 void sch_time_init (void)
163 {
164 1 T0_init(T0_NOT_GATED, T0_TIMER, T0_MODE_1);
165 1 TL0 = TIM_LOW;
166 1 TH0 = TIM_HIGH;
167 1 t0_set_prio(T0_PRIO); /* set-up priority */
168 1 T0_enable_int(); /* enable interrupt */
169 1 T0_start(); /* start time base */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -