📄 tool_task.lst
字号:
C51 COMPILER V7.06 TOOL_TASK 05/05/2005 12:12:05 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TOOL_TASK
OBJECT MODULE PLACED IN tool_task.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE modules\tool\tool_task.c OPTIMIZE(7,SPEED) BROWSE INCDIR(.\modules\system;.
-\;.\;.\lib_refd) DEFINE(KEIL) DEBUG OBJECTEXTEND PRINT(.\tool_task.lst) OBJECT(tool_task.obj)
stmt level source
1 /*C**************************************************************************
2 * NAME: tool_task.c
3 *----------------------------------------------------------------------------
4 * Copyright (c) 2003 Atmel.
5 *----------------------------------------------------------------------------
6 * RELEASE: snd1c-refd-nf-4_0_3
7 * REVISION: 1.12
8 *----------------------------------------------------------------------------
9 * PURPOSE:
10 * This file contains the tool task and attached routines
11 *
12 * NOTES:
13 * Global Variables:
14 * - gl_key_press: bit in bdata space
15 * - gl_key: byte in idata space
16 *****************************************************************************/
17
18 /*_____ I N C L U D E S ____________________________________________________*/
19
20 #include "config.h" /* system configuration */
21 #include "board.h" /* board definition */
22 #include "modules\display\disp.h" /* display definition */
23 #include "modules\file\file.h" /* file definition */
24 #include "modules\mem\mem_task.h" /* memory task definition */
25 #include "modules\mode\mode_task.h" /* mode task definition */
26 #include "tool_task.h" /* tool task definition */
27
28
29 /*_____ M A C R O S ________________________________________________________*/
30
31
32 /*_____ D E F I N I T I O N ________________________________________________*/
33
34 extern bdata bit gl_key_press; /* set to TRUE if a key is decoded */
35 extern idata Byte gl_key; /* value of the key pressed */
36
37 static idata Byte tool_index; /* index in tool menu */
38 static data Byte tool_state; /* task state */
39
40 code St_menu tool_menu[] =
41 {
42 {TOOL_FORMAT, "\2 Format... \r"},
43 };
44
45
46 /*_____ D E C L A R A T I O N ______________________________________________*/
47
48
49 /*F**************************************************************************
50 * NAME: tool_task_init
51 *----------------------------------------------------------------------------
52 * PARAMS:
53 *
54 * return:
C51 COMPILER V7.06 TOOL_TASK 05/05/2005 12:12:05 PAGE 2
55 *----------------------------------------------------------------------------
56 * PURPOSE:
57 * Tool task initialization
58 *----------------------------------------------------------------------------
59 * EXAMPLE:
60 *----------------------------------------------------------------------------
61 * NOTE:
62 *----------------------------------------------------------------------------
63 * REQUIREMENTS:
64 *****************************************************************************/
65 void tool_task_init (void)
66 {
67 1 tool_state = TOOL_INIT;
68 1 }
69
70
71 /*F**************************************************************************
72 * NAME: tool_task
73 *----------------------------------------------------------------------------
74 * PARAMS:
75 *
76 * return:
77 *----------------------------------------------------------------------------
78 * PURPOSE:
79 * Tool task
80 *----------------------------------------------------------------------------
81 * EXAMPLE:
82 *----------------------------------------------------------------------------
83 * NOTE:
84 * STATES:
85 * TOOL_INIT screen initialization
86 * TOOL_IDLE idle state of this task
87 * TOOL_CONF configuration menu
88 * TOOL_MEM memory menu
89 *----------------------------------------------------------------------------
90 * REQUIREMENTS:
91 *****************************************************************************/
92 void tool_task (void)
93 {
94 1 switch (tool_state)
95 1 {
96 2 case TOOL_INIT:
97 2 {
98 3 if (mem_status() != MEM_BUSY) /* wait end of memory install */
99 3 {
100 4 print_mode_tool(); /* select song icon */
101 4 print_state_stop();
102 4 print_screen(TOOL_SCREEN); /* display tool screen */
103 4 tool_index = 0; /* reset menu index */
104 4 print_string(tool_menu[0].disp); /* print first tool command */
105 4 tool_state = TOOL_IDLE;
106 4 }
107 3 break;
108 3 }
109 2
110 2 /* Tool Menu */
111 2 case TOOL_IDLE:
112 2 {
113 3 if (gl_key_press)
114 3 {
115 4 switch (gl_key)
116 4 {
C51 COMPILER V7.06 TOOL_TASK 05/05/2005 12:12:05 PAGE 3
117 5 case KEY_MEM:
118 5 {
119 6 mem_select_next(); /* select next memory */
120 6 tool_state = TOOL_INIT;
121 6 break;
122 6 }
123 5
124 5 case KEY_DEC:
125 5 {
126 6 if (tool_index == (sizeof(tool_menu) / sizeof(St_menu)) - 1)
127 6 {
128 7 tool_index = 0; /* point on first item */
129 7 }
130 6 else
131 6 {
132 7 tool_index++; /* point next item */
133 7 }
134 6 print_string(tool_menu[tool_index].disp);
135 6 break;
136 6 }
137 5
138 5 case KEY_INC:
139 5 {
140 6 if (tool_index == 0)
141 6 {
142 7 tool_index = (sizeof(tool_menu) / sizeof(St_menu) - 1); /* point on last item */
143 7 }
144 6 else
145 6 {
146 7 tool_index--; /* point previous item */
147 7 }
148 6 print_string(tool_menu[tool_index].disp);
149 6 break;
150 6 }
151 5
152 5 case KEY_ENTER:
153 5 {
154 6 /* validate menu item */
155 6 tool_state = tool_menu[tool_index].state;
156 6 break;
157 6 }
158 5
159 5 case KEY_MODE:
160 5 {
161 6 mode_set_init(); /* exit from tool task */
162 6 tool_state = TOOL_INIT;
163 6 break;
164 6 }
165 5 }
166 4 gl_key_press = FALSE; /* ack key usage */
167 4 }
168 3 else
169 3 { /* check card presence */
170 4 if (mem_check_card() == KO)
171 4 {
172 5 mem_select_next();
173 5 tool_state = TOOL_INIT; /* card has been unplugged */
174 5 }
175 4 }
176 3 break;
177 3 }
178 2
C51 COMPILER V7.06 TOOL_TASK 05/05/2005 12:12:05 PAGE 4
179 2 case TOOL_FORMAT:
180 2 {
181 3 print_string(tool_menu[tool_index].disp);
182 3 print_state_play(); /* format in progress */
183 3 Fformat();
184 3 if (mem_select_format() != OK) /* check file system */
185 3 {
186 4 print_string(TOOL_FORMAT_ERROR);
187 4 }
188 3 print_state_stop();
189 3 tool_state = TOOL_IDLE;
190 3 break;
191 3 }
192 2 }
193 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 250 ----
CONSTANT SIZE = 72 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = 1 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -