📄 user_main.lst
字号:
C51 COMPILER V7.50 USER_MAIN 07/17/2008 14:38:51 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE USER_MAIN
OBJECT MODULE PLACED IN ..\output\user_main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\src\user_main.c LARGE OPTIMIZE(9,SIZE) BROWSE INCDIR(..\..\..\bsp\includ
-e;..\src\include;..\..\include) DEFINE(CONFIG_ASIC) DEBUG OBJECTEXTEND PRINT(.\user_main.lst) OBJECT(..\output\user_main
-.obj)
line level source
1 /*
2 * user_main.c
3 *
4 * User Code Entry Function
5 *
6 * Copyright (c) FARADAY, All Right Reserved 2006
7 *
8 * Created by: K.J. Lin <kjlin@faraday-tech.com>
9 *
10 */
11 #include <stdio.h>
12 #include "api.h"
*** WARNING C318 IN LINE 12 OF ..\src\user_main.c: can't open file 'api.h'
13 #include "lcd.h"
*** ERROR C129 IN LINE 102 OF ..\..\INCLUDE\LCD.H: missing ';' before 'lcd_max_str'
14 #include "key.h"
15 #include "common.h"
*** WARNING C318 IN LINE 5 OF ..\..\INCLUDE\COMMON.H: can't open file 'types.h'
16 #include "ap_common.h"
17 #include "display.h"
*** WARNING C318 IN LINE 4 OF ..\..\INCLUDE\DISPLAY.H: can't open file 'types.h'
18 #include "res_show.h"
19 #include "res.h"
20 //#include "lrc_parse.h"
21 #include "prefer.h"
22 #include "usb_main.h"
23 #include "gameblock.h"
*** WARNING C318 IN LINE 3 OF ..\SRC\INCLUDE\GAMEBLOCK.H: can't open file 'types.h'
24 #include "ui_main.h"
25 #include "batt.h"
26 #include "global_user.h"
*** WARNING C318 IN LINE 26 OF ..\src\user_main.c: can't open file 'global_user.h'
27
28 //extern BOOLEAN txt_init;
29
30 extern BOOLEAN playGame;
31 extern INT8 countTime;
32 extern INT8 g_game_speed;
33
34 UINT8 cartoon_count=0;
35 UINT8 txt_count=0;
36 INT8U low_batt_count = 0;
37 extern BOOLEAN play_statu;
38 INT8U batt_count = 0;
39
40 #define CONFIG_EVB
41 #define CONFIG_NAND_LARGEPAGE
42
43 #define KEY(name) KEY_##name
44
45 #ifdef CONFIG_EVB // EVB Board
46
47 code UINT8 key_map[] =
C51 COMPILER V7.50 USER_MAIN 07/17/2008 14:38:51 PAGE 2
48 {
49 KEY(UNUSED) , KEY(UNUSED) , KEY(PLAY) , KEY(PLAY) ,
50 KEY(PLAY) , KEY(PLAY) , KEY(PLAY) , KEY(PLAY) ,
51 KEY(PLAY) , KEY(PREV) , KEY(PREV) , KEY(PREV) ,
52 KEY(PREV) , KEY(PREV) , KEY(PREV) , KEY(NEXT) ,
53 KEY(NEXT) , KEY(NEXT) , KEY(NEXT) , KEY(AB_REPEAT),
54 KEY(AB_REPEAT), KEY(AB_REPEAT), KEY(AB_REPEAT), KEY(AB_REPEAT),
55 KEY(AB_REPEAT), KEY(MENU) , KEY(MENU) , KEY(MENU) ,
56 KEY(MENU) , KEY(MENU) , KEY(MENU) , KEY(MENU) ,
57 };
58
59 #else // FPGA Board
code UINT8 key_map[] =
{
KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) ,
KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) ,
KEY(UNUSED) , KEY(UNUSED) , KEY(UNUSED) , KEY(MENU) ,
KEY(MENU) , KEY(MENU) , KEY(VOL_DN) , KEY(VOL_DN) ,
KEY(VOL_UP) , KEY(VOL_UP) , KEY(VOL_UP) , KEY(AB_REPEAT),
KEY(AB_REPEAT), KEY(PLAY) , KEY(PLAY) , KEY(PLAY) ,
KEY(STOP) , KEY(STOP) , KEY(STOP) , KEY(NEXT) ,
KEY(NEXT) , KEY(NEXT) , KEY(PREV) , KEY(PREV) ,
};
#endif
73
74 code UINT8 battery_map[] =
75 {
76 BATTERY_LEVEL_1, BATTERY_LEVEL_2, BATTERY_LEVEL_3, BATTERY_LEVEL_4 ,
77 BATTERY_LEVEL_5, BATTERY_LEVEL_6, BATTERY_LEVEL_7, BATTERY_LEVEL_8 ,
78 BATTERY_LEVEL_9, BATTERY_LEVEL_10, BATTERY_LEVEL_11, BATTERY_LEVEL_12,
79 BATTERY_LEVEL_13, BATTERY_LEVEL_14, BATTERY_LEVEL_15, BATTERY_LEVEL_16,
80 BATTERY_LEVEL_17, BATTERY_LEVEL_18, BATTERY_LEVEL_19, BATTERY_LEVEL_20,
81 BATTERY_LEVEL_21, BATTERY_LEVEL_22, BATTERY_LEVEL_23, BATTERY_LEVEL_24,
82 BATTERY_LEVEL_25, BATTERY_LEVEL_26, BATTERY_LEVEL_27, BATTERY_LEVEL_28,
83 BATTERY_LEVEL_29, BATTERY_LEVEL_30, BATTERY_LEVEL_31, BATTERY_LEVEL_32,
84 };
85
86 UINT8 event_argv;
87
88 #ifndef CONFIG_NAND_LARGEPAGE
INT16U free_mem_ptr;
INT16U free_mem_end_ptr;
INT32U *file_entry;
void xdata *my_malloc(UINT16 size)
{
void xdata *p;
if(size <= 0 || (free_mem_ptr + size > free_mem_end_ptr))
return 0;
p = (void *)free_mem_ptr;
free_mem_ptr += size;
return p;
}
#endif
107
108
109 void event_short_button(void)
C51 COMPILER V7.50 USER_MAIN 07/17/2008 14:38:51 PAGE 3
110 {
111 key_process(event_argv);
112 }
113
114 void event_long_button(void)
115 {
116 //Print("Long Button\n");
117 switch(event_argv) {
118 case KEY(NEXT):
119 case KEY(PREV):
120 if(curr_screen->id == SCREEN_GAME)
121 event_argv += (KEY_FORWARD - KEY_NEXT);
122 break;
123 case KEY(VOL_DN):
124 case KEY(VOL_UP):
125 case KEY(PLAY):
126 event_argv += (KEY_LONG_PLAY - KEY_PLAY);
127 break;
128 case KEY(MENU):
129 event_argv += (KEY_LONG_MENU - KEY_MENU);
130 break;
131 default:
132 return;
133 }
134
135 key_process(event_argv);
136 }
137
138 void event_button_release(void)
139 {
140 key_process(KEY_RELEASE);
141 }
142
143 void event_usb_status_change(void)
144 {
145 }
146
147 void event_init_startup(void);
148 void event_usb_cable_out(void)
149 {
150 }
151
152 void event_usb_cable_in(void)
153 {
154 //usb_online();
155 //screen_map(SCREEN_USB);
156 api_bLoad(Code_USER13,1);
157 }
158
159 void event_quarter_sec(void)
160 {
161 if(playGame)
162 {
163 if(KEY(AB_REPEAT)==event_argv)
164 countTime=0;
165 if(countTime<=0)
166 {
167 game_block(KEY(AB_REPEAT));
168 countTime=5-g_game_speed;
169 }
170 if(countTime>0)
171 countTime--;
C51 COMPILER V7.50 USER_MAIN 07/17/2008 14:38:51 PAGE 4
172 }
173 if(screen_level==SCREEN_LEVEL_USB_ON)
174 {
175 ui_show_charge();
176 }
177 if(api_u8GetBatteryRemain() <= BATTERY_LEVEL_10)
178 {
179 low_batt_count++;
180 }
181 else
182 {
183 low_batt_count = 0;
184 }
185 if(low_batt_count==6) //shut down
186 {
187 close_volume();
188 bResShowPic(LOWPOWER,0,0);
189 delay(10000);
190 delay(10000);
191 vShutDown();
192 }
193 vKeyTimeOut();
194 }
195
196 void event_dsp_exception(void)
197 {
198 #if 0
if((curr_screen->id == SCREEN_MOVIE && screen_level == SCREEN_LEVEL_MOVIE_PLAY) ||
(curr_screen->id == SCREEN_PICTURE && screen_level == SCREEN_LEVEL_JPEG_DISP)) {
Print("Fmt err\n");
lcd_set_rw_area(SCREEN_START_X, SCREEN_START_Y, SCREEN_WIDTH, SCREEN_HEIGHT);
key_process(KEY(NEXT));
}
#endif
206 }
207
208 void event_loop_epilog(void)
209 {
210 }
211
212 void event_init_startup(void)
213 {
214 #ifndef CONFIG_NAND_LARGEPAGE
/* Nothing, just for demo "api_vGetFreeXdataInfo()" in small page flash. */
INT16U free_size, free_start;
api_vGetFreeXdataInfo(&free_size, &free_start);
free_mem_ptr = free_start;
free_mem_end_ptr = free_mem_ptr + free_size;
file_entry = (INT32U *)my_malloc(FILE_ENTRY_MAX * sizeof(UINT32));
#endif
224 api_vKeyMapRegister(key_map);
225 api_vSetPassCount(30);
226 api_vBatteryLevelRegister(battery_map);
227
228 api_bLoadPreferenceData((void*)(&tUserPreference),sizeof(USER_PREFERENCE_T));
229 tUserPreference.game_speed=2;
230 if(tUserPreference.u8LanguageId>4)
231 api_bSetLanguage(0);
232 else
233 api_bSetLanguage(tUserPreference.u8LanguageId);
C51 COMPILER V7.50 USER_MAIN 07/17/2008 14:38:51 PAGE 5
234 u16TimerCount = 1;
235 menu_stop = 1;
236 gui_init();
237 playGame=0;
238 // screen_map(SCREEN_GAME);
239 game_sub_menu();
240 }
241
242
243 typedef void event_handler(void);
244
245 static code event_handler *handlers[] = {
246 event_init_startup, // EVENT_INIT_STARTUP
247 NULL, // EVENT_WATCHDOG_UP
248 NULL, // EVENT_LOOP_PROLOG
249 event_loop_epilog, // EVENT_LOOP_EPILOG
250 NULL, // EVENT_OCTANT_SEC
251 event_quarter_sec, // EVENT_QUARTER_SEC
252 event_usb_cable_in, // EVENT_USB_CABLE_IN
253 event_usb_cable_out, // EVENT_USB_CABLE_OUT
254 event_usb_status_change, // EVENT_USB_STATUS_CHANGE
255 NULL, // EVENT_CARD_CHANGE
256 event_long_button, // EVENT_LONG_BUTTON
257 event_short_button, // EVENT_SHORT_BUTTON
258 event_button_release, // EVENT_BUTTON_RELEASE
259 event_dsp_exception, // EVENT_DSP_EXCEPTION
260 };
261
262 void user_main(UINT8 event, UINT8 argv)
263 {
264 event_argv = argv;
265 event -= 0x80;
266
267 if(handlers[event])
268 (*handlers[event])();
269 }
270
C51 COMPILATION COMPLETE. 5 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -