📄 tool_task.lst
字号:
C51 COMPILER V6.20c TOOL_TASK 07/10/2002 15:17:42 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE TOOL_TASK
OBJECT MODULE PLACED IN ..\obj\tool_task.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\src\tool\tool_task.c BROWSE INCDIR(..\src\system;..\..\..\lib) DEFINE(KE
-IL) DEBUG OBJECTEXTEND PRINT(.\tool_task.lst) OBJECT(..\obj\tool_task.obj)
stmt level source
1 /*C**************************************************************************
2 * $RCSfile: tool_task.c,v $
3 *----------------------------------------------------------------------------
4 * Copyright (c) 2002 Atmel.
5 *----------------------------------------------------------------------------
6 * RELEASE: $Name: DEMO_FAT_1_2_5 $
7 * REVISION: $Revision: 1.7 $
8 * FILE_CVSID: $Id: tool_task.c,v 1.7 2002/06/06 15:28:52 ffosse Exp $
9 *----------------------------------------------------------------------------
10 * PURPOSE:
11 * This file contains the tool task and attached routines
12 *
13 * NOTES:
14 * Global Variables:
15 * - gl_key_press: bit in bdata space
16 * - gl_key: byte in idata space
17 *****************************************************************************/
18
19 /*_____ I N C L U D E S ____________________________________________________*/
20
21 #include "config.h" /* system configuration */
22 #include "..\..\..\..\lib_demob\board.h" /* board definition */
23 #include "..\display\disp.h" /* display definition */
24 #include "..\file\file.h" /* file definition */
25 #include "..\..\..\..\lib_mem\df\df.h" /* dataflash definition */
26 #include "..\..\..\..\lib_mem\mmc\mmc.h" /* mmc definition */
27 #include "..\mem\mem_task.h" /* memory task definition */
28 #include "..\mode\mode_task.h" /* mode task definition */
29 #include "tool_task.h" /* tool task definition */
30
31
32 /*_____ M A C R O S ________________________________________________________*/
33
34
35 /*_____ D E F I N I T I O N ________________________________________________*/
36
37 extern bdata bit gl_key_press; /* set to TRUE if a key is decoded */
38 extern idata Byte gl_key; /* value of the key pressed */
39
40 code St_menu tool_menu[] =
41 {
42 {TOOL_FORMAT, "\2 Format... \r"},
43 {TOOL_FORMAT_WAV, "\2 Format + voice\r"},
44 };
45
46 static Byte tool_index; /* index in tool menu */
47 static Byte tool_state; /* task state */
48
49
50 /*_____ D E C L A R A T I O N ______________________________________________*/
51
52
53 /*F**************************************************************************
54 * NAME: tool_task_init
C51 COMPILER V6.20c TOOL_TASK 07/10/2002 15:17:42 PAGE 2
55 *----------------------------------------------------------------------------
56 * PARAMS:
57 *
58 * return:
59 *----------------------------------------------------------------------------
60 * PURPOSE:
61 * Tool task initialization
62 *----------------------------------------------------------------------------
63 * EXAMPLE:
64 *----------------------------------------------------------------------------
65 * NOTE:
66 *----------------------------------------------------------------------------
67 * REQUIREMENTS:
68 *****************************************************************************/
69 void tool_task_init (void)
70 {
71 1 tool_state = TOOL_INIT;
72 1 }
73
74
75 /*F**************************************************************************
76 * NAME: tool_task
77 *----------------------------------------------------------------------------
78 * PARAMS:
79 *
80 * return:
81 *----------------------------------------------------------------------------
82 * PURPOSE:
83 * Tool task
84 *----------------------------------------------------------------------------
85 * EXAMPLE:
86 *----------------------------------------------------------------------------
87 * NOTE:
88 * STATES:
89 * TOOL_INIT screen initialization
90 * TOOL_IDLE idle state of this task
91 * TOOL_CONF configuration menu
92 * TOOL_MEM memory menu
93 *----------------------------------------------------------------------------
94 * REQUIREMENTS:
95 *****************************************************************************/
96 void tool_task (void)
97 {
98 1 switch (tool_state)
99 1 {
100 2 case TOOL_INIT:
101 2 {
102 3 if (mem_status() != MEM_BUSY) /* wait end of memory install */
103 3 {
104 4 print_mode_tool(); /* select song icon */
105 4 print_state_stop();
106 4 print_screen(TOOL_SCREEN); /* display tool screen */
107 4 tool_index = 0; /* reset menu index */
108 4 print_string(tool_menu[0].disp); /* print first tool command */
109 4 tool_state = TOOL_IDLE;
110 4 }
111 3 break;
112 3 }
113 2
114 2 /* Tool Menu */
115 2 case TOOL_IDLE:
116 2 {
C51 COMPILER V6.20c TOOL_TASK 07/10/2002 15:17:42 PAGE 3
117 3 if (gl_key_press)
118 3 {
119 4 switch (gl_key)
120 4 {
121 5 case KEY_MEM:
122 5 {
123 6 mem_select_next(); /* select next memory */
124 6 tool_state = TOOL_INIT;
125 6 break;
126 6 }
127 5
128 5 case KEY_DEC:
129 5 {
130 6 if (tool_index == (sizeof(tool_menu) / sizeof(St_menu)) - 1)
131 6 {
132 7 tool_index = 0; /* point on first item */
133 7 }
134 6 else
135 6 {
136 7 tool_index++; /* point next item */
137 7 }
138 6 print_string(tool_menu[tool_index].disp);
139 6 break;
140 6 }
141 5
142 5 case KEY_INC:
143 5 {
144 6 if (tool_index == 0)
145 6 {
146 7 tool_index = (sizeof(tool_menu) / sizeof(St_menu) - 1); /* point on last item */
147 7 }
148 6 else
149 6 {
150 7 tool_index--; /* point previous item */
151 7 }
152 6 print_string(tool_menu[tool_index].disp);
153 6 break;
154 6 }
155 5
156 5 case KEY_ENTER:
157 5 {
158 6 /* validate menu item */
159 6 tool_state = tool_menu[tool_index].state;
160 6 break;
161 6 }
162 5
163 5 case KEY_MODE:
164 5 {
165 6 mode_set_init(); /* exit from tool task */
166 6 tool_state = TOOL_INIT;
167 6 break;
168 6 }
169 5 }
170 4 gl_key_press = FALSE; /* ack key usage */
171 4 }
172 3 else
173 3 { /* check card presence */
174 4 if (mem_check_card() == KO)
175 4 {
176 5 mem_select_next();
177 5 tool_state = TOOL_INIT; /* card has been unplugged */
178 5 }
C51 COMPILER V6.20c TOOL_TASK 07/10/2002 15:17:42 PAGE 4
179 4 }
180 3 break;
181 3 }
182 2
183 2 case TOOL_FORMAT:
184 2 {
185 3 print_string(tool_menu[tool_index].disp);
186 3 print_state_play(); /* format in progress */
187 3 Fformat(FALSE); /* format without voice wav files */
188 3 if (mem_select_format() != OK) /* check file system */
189 3 {
190 4 print_string(TOOL_FORMAT_ERROR);
191 4 }
192 3 print_state_stop();
193 3 tool_state = TOOL_IDLE;
194 3 break;
195 3 }
196 2
197 2 case TOOL_FORMAT_WAV:
198 2 {
199 3 print_string(tool_menu[tool_index].disp);
200 3 print_state_play(); /* format in progress */
201 3 Fformat(TRUE); /* format with voice wav files */
202 3 if (mem_select_format() != OK) /* check file system */
203 3 {
204 4 print_string(TOOL_FORMAT_ERROR);
205 4 }
206 3 print_state_stop();
207 3 tool_state = TOOL_IDLE;
208 3 break;
209 3 }
210 2 }
211 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 272 ----
CONSTANT SIZE = 91 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
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 + -