📄 disp_task.lst
字号:
C51 COMPILER V6.20c DISP_TASK 07/10/2002 15:17:39 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE DISP_TASK
OBJECT MODULE PLACED IN ..\obj\disp_task.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\src\display\disp_task.c BROWSE INCDIR(..\src\system;..\..\..\lib) DEFINE
-(KEIL) DEBUG OBJECTEXTEND PRINT(.\disp_task.lst) OBJECT(..\obj\disp_task.obj)
stmt level source
1 /*C**************************************************************************
2 * $RCSfile: disp_task.c,v $
3 *----------------------------------------------------------------------------
4 * Copyright (c) 2002 Atmel.
5 *----------------------------------------------------------------------------
6 * RELEASE: $Name: DEMO_FAT_1_2_5 $
7 * REVISION: $Revision: 1.5 $
8 * FILE_CVSID: $Id: disp_task.c,v 1.5 2002/06/06 15:20:49 ffosse Exp $
9 *----------------------------------------------------------------------------
10 * PURPOSE:
11 * This file contains the display task and attached routines
12 *
13 * NOTES:
14 * Global Variables:
15 * - gl_cpt_tick: global tick counter in data space
16 *****************************************************************************/
17
18 /*_____ I N C L U D E S ____________________________________________________*/
19
20 #include "config.h" /* system configuration */
21 #include "..\file\file.h" /* file definition */
22 #include "..\display\disp.h" /* display definition */
23 #include "..\mass\sbc.h" /* SBC commands definition */
24 #include "disp_task.h" /* display task definition */
25
26
27 /*_____ M A C R O S ________________________________________________________*/
28
29
30 /*_____ D E F I N I T I O N ________________________________________________*/
31
32 extern data Byte gl_cpt_tick; /* general tick counter */
33
34 static bdata bit disp_scroll_on; /* set to TRUE to scroll name */
35 static bdata bit disp_clock_on; /* set to TRUE to start clock */
36 static data Byte disp_sec_cpt; /* second counter */
37 static data Byte disp_min_cpt; /* minute counter */
38 static data char pdata * disp_buffer;
39
40 static data Byte disp_state; /* task state */
41
42
43 /*_____ D E C L A R A T I O N ______________________________________________*/
44
45
46 /*F**************************************************************************
47 * NAME: disp_task_init
48 *----------------------------------------------------------------------------
49 * PARAMS:
50 *
51 * return:
52 *----------------------------------------------------------------------------
53 * PURPOSE:
54 * Display task initialization
C51 COMPILER V6.20c DISP_TASK 07/10/2002 15:17:39 PAGE 2
55 *----------------------------------------------------------------------------
56 * EXAMPLE:
57 *----------------------------------------------------------------------------
58 * NOTE:
59 *----------------------------------------------------------------------------
60 * REQUIREMENTS:
61 *****************************************************************************/
62 void disp_task_init (void)
63 {
64 1 disp_scroll_on = FALSE;
65 1 disp_clock_on = FALSE;
66 1 disp_state = DISP_IDLE;
67 1 print_init();
68 1 }
69
70
71 /*F**************************************************************************
72 * NAME: disp_task
73 *----------------------------------------------------------------------------
74 * PARAMS:
75 *
76 * return:
77 *----------------------------------------------------------------------------
78 * PURPOSE:
79 * Display task handling display of clock and scrolling of file name
80 *----------------------------------------------------------------------------
81 * EXAMPLE:
82 *----------------------------------------------------------------------------
83 * NOTE:
84 *----------------------------------------------------------------------------
85 * REQUIREMENTS:
86 *****************************************************************************/
87 void disp_task (void)
88 {
89 1 switch (disp_state)
90 1 {
91 2 case DISP_IDLE:
92 2 {
93 3 if (sbc_wr_busy)
94 3 {
95 4 Lcd_cur_on(); /* blinking cursor for .5 sec */
96 4 sbc_wr_busy = FALSE;
97 4 gl_cpt_tick = 0;
98 4 disp_state = DISP_MS_BUSY;
99 4 }
100 3 break;
101 3 }
102 2
103 2 case DISP_INIT:
104 2 {
105 3 disp_state = DISP_TICK0;
106 3 gl_cpt_tick = 0;
107 3 disp_buffer = File_get_name();
108 3 if (print_name(disp_buffer) != TRUE) /* test if not short name */
109 3 {
110 4 disp_scroll_on = TRUE; /* activate name scrolling */
111 4 }
112 3 else
113 3 {
114 4 disp_scroll_on = FALSE; /* no scrolling */
115 4 }
116 3 break;
C51 COMPILER V6.20c DISP_TASK 07/10/2002 15:17:39 PAGE 3
117 3 }
118 2
119 2 case DISP_TICK0:
120 2 {
121 3 if (gl_cpt_tick > DISP_TICK_500) /* 1/2 sec expiration */
122 3 {
123 4 gl_cpt_tick -= DISP_TICK_500;
124 4 if (disp_scroll_on)
125 4 {
126 5 if (print_name(disp_buffer))
127 5 {
128 6 disp_buffer = File_get_name();
129 6 }
130 5 else
131 5 {
132 6 disp_buffer++;
133 6 }
134 5 }
135 4 disp_state = DISP_TICK1;
136 4 }
137 3 break;
138 3 }
139 2
140 2 case DISP_TICK1:
141 2 {
142 3 if (gl_cpt_tick > DISP_TICK_500) /* 1/2 sec expiration */
143 3 {
144 4 gl_cpt_tick -= DISP_TICK_500;
145 4 if (disp_scroll_on)
146 4 {
147 5 if (print_name(disp_buffer))
148 5 {
149 6 disp_buffer = File_get_name();
150 6 }
151 5 else
152 5 {
153 6 disp_buffer++;
154 6 }
155 5 }
156 4 if (disp_clock_on)
157 4 {
158 5 disp_state = DISP_SEC;
159 5 }
160 4 else
161 4 {
162 5 disp_state = DISP_TICK0;
163 5 }
164 4 }
165 3 break;
166 3 }
167 2
168 2 case DISP_SEC:
169 2 {
170 3 if (disp_sec_cpt == DISP_SEC_MIN) /* 1 min expiration */
171 3 {
172 4 disp_sec_cpt = 0;
173 4 print_sec(disp_sec_cpt);
174 4 disp_state = DISP_MIN;
175 4 }
176 3 else
177 3 {
178 4 disp_sec_cpt++;
C51 COMPILER V6.20c DISP_TASK 07/10/2002 15:17:39 PAGE 4
179 4 print_sec(disp_sec_cpt);
180 4 disp_state = DISP_TICK0;
181 4 }
182 3 break;
183 3 }
184 2
185 2 case DISP_MIN:
186 2 {
187 3 disp_min_cpt++;
188 3 print_min(disp_min_cpt);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -