?? keytask.lst
字號:
1 .file "KeyTask.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
101 .global TaskID
102 .global TaskID
103 .section .bss
106 TaskID:
107 0000 00 .skip 1,0
108 .global KeyTask
109 .section .progmem.data,"a",@progbits
112 KeyTask:
113 0000 00 .byte 0
114 0001 00 .byte 0
115 0002 00 .byte 0
116 0003 00 .byte 0
117 0004 00 .byte 0
118 0005 00 .byte 0
119 0006 11 .byte 17
120 0007 10 .byte 16
121 0008 23 .byte 35
122 0009 23 .byte 35
123 000a 10 .byte 16
124 000b 12 .byte 18
125 000c 10 .byte 16
126 000d 10 .byte 16
127 000e 20 .byte 32
128 000f 26 .byte 38
129 0010 25 .byte 37
130 0011 20 .byte 32
131 0012 14 .byte 20
132 0013 28 .byte 40
133 0014 27 .byte 39
134 .data
135 .LC0:
136 0000 2020 7074 .string " pt "
136 2000
137 .LC1:
138 0006 2020 6374 .string " ct "
138 2000
139 .LC2:
140 000c 682D 616C .string "h-alr"
140 7200
141 .LC3:
142 0012 6C2D 616C .string "l-alr"
142 7200
143 .LC4:
144 0018 2062 6175 .string " baud"
144 6400
145 .LC5:
146 001e 2061 6464 .string " addr"
146 7200
147 .LC6:
148 0024 2061 6C72 .string " alr "
148 2000
149 .global first_menu
150 .section .progmem.data
153 first_menu:
154 0015 0000 .word .LC0
155 0017 0000 .word .LC1
156 0019 0000 .word .LC2
157 001b 0000 .word .LC3
158 001d 0000 .word .LC4
159 001f 0000 .word .LC5
160 0021 0000 .word .LC6
161 .text
166 .global ValAdd
168 ValAdd:
1:task/KeyTask.c **** /********************************************
2:task/KeyTask.c **** 公司名稱:
3:task/KeyTask.c **** 文 件 名:
4:task/KeyTask.c **** 版 本 號:
5:task/KeyTask.c **** 程序設計:
6:task/KeyTask.c **** 說 明:
7:task/KeyTask.c **** 完成日期:
8:task/KeyTask.c **** 修改日期:
9:task/KeyTask.c **** 功能摘要:
10:task/KeyTask.c **** **********************************************/
11:task/KeyTask.c ****
12:task/KeyTask.c **** #define _KeyTaskv20
13:task/KeyTask.c **** #include "includes.h"
14:task/KeyTask.c **** //---------------------------------------------------
15:task/KeyTask.c **** #define Menu_set 0x10
16:task/KeyTask.c ****
17:task/KeyTask.c **** const char *first_menu[] PROGMEM = {" pt "," ct ","h-alr","l-alr"," baud"," addr"," alr "};
18:task/KeyTask.c ****
19:task/KeyTask.c **** //-----------------------------------------------------
20:task/KeyTask.c **** //0 dn up u+d s s+d s+u
21:task/KeyTask.c **** const uint8 KeyTask[3][7] PROGMEM = {
22:task/KeyTask.c **** {0x00,0x00,0x00,0x00,0x00,0x00,0x11},
23:task/KeyTask.c **** {0x10,0x23,0x23,0x10,0x12,0x10,0x10},
24:task/KeyTask.c **** {0x20,0x26,0x25,0x20,0x14,0x28,0x27}
25:task/KeyTask.c ****
26:task/KeyTask.c ****
27:task/KeyTask.c ****
28:task/KeyTask.c **** };
29:task/KeyTask.c **** uint8 MenuID; //菜單項,
30:task/KeyTask.c **** uint8 TaskID = 0;
31:task/KeyTask.c **** uint8 fDOKEY;
32:task/KeyTask.c ****
33:task/KeyTask.c ****
34:task/KeyTask.c **** void KeyTask_MainLoop(void);
35:task/KeyTask.c **** uint16 ValAdd(uint16 ValTemp,uint8 AddCount,uint16 MaxVal);
36:task/KeyTask.c **** uint16 ValDec(uint16 ValTemp,uint8 DecCount,uint16 MaxVal);
37:task/KeyTask.c **** void MenuDis(uint8 DisNum);
38:task/KeyTask.c **** void Dis_info(uint8 *LedBuf,uint8 *pLed);
39:task/KeyTask.c ****
40:task/KeyTask.c **** //---------------------------------------
41:task/KeyTask.c **** void KeyTask_MainLoop(void)
42:task/KeyTask.c **** {
43:task/KeyTask.c **** uint8 TaskTemp;
44:task/KeyTask.c **** uint8 m;
45:task/KeyTask.c ****
46:task/KeyTask.c **** if (KeyVal > 0x06) return;
47:task/KeyTask.c **** m = TaskID & 0xf0;
48:task/KeyTask.c **** m >>= 4;
49:task/KeyTask.c **** if (m > 3) return;
50:task/KeyTask.c **** TaskTemp = pgm_read_byte(&KeyTask[m][KeyVal]);
51:task/KeyTask.c **** TaskID = TaskTemp & 0xf0; //保存次態
52:task/KeyTask.c ****
53:task/KeyTask.c **** switch (TaskTemp & 0x0f) //按任務號查詢
54:task/KeyTask.c **** {
55:task/KeyTask.c **** case 0: //無效鍵返回
56:task/KeyTask.c **** return;
57:task/KeyTask.c **** break;
58:task/KeyTask.c ****
59:task/KeyTask.c **** case 1:
60:task/KeyTask.c **** MenuID = Menu_set; //進入參數設定初始化顯示
61:task/KeyTask.c **** break;
62:task/KeyTask.c ****
63:task/KeyTask.c **** case 2: //SET鍵一級菜單顯示項遞增
64:task/KeyTask.c **** fDOKEY = 1; //防止連擊
65:task/KeyTask.c **** MenuID++;
66:task/KeyTask.c **** if ((MenuID & 0x0f) == MENU_MAX) //在功能參數設置狀態下
67:task/KeyTask.c **** { MenuID &= 0xf0; }
68:task/KeyTask.c **** break;
69:task/KeyTask.c ****
70:task/KeyTask.c **** case 3:
71:task/KeyTask.c **** fDOKEY = 1;
72:task/KeyTask.c **** MenuID += 0x10; //UP、DN鍵菜單級數跳轉
73:task/KeyTask.c **** break;
74:task/KeyTask.c ****
75:task/KeyTask.c **** case 4:
76:task/KeyTask.c **** fDOKEY = 1;
77:task/KeyTask.c **** MenuID -= 0x10; //SET鍵菜單級數遞減
78:task/KeyTask.c **** break;
79:task/KeyTask.c ****
80:task/KeyTask.c **** case 5:
81:task/KeyTask.c **** switch (MenuID & 0x0f)
82:task/KeyTask.c **** {
83:task/KeyTask.c **** case 0x00:
84:task/KeyTask.c **** PtVal = ValAdd(PtVal,STEP,PT_MAX_VAL);
85:task/KeyTask.c **** break;
86:task/KeyTask.c ****
87:task/KeyTask.c **** case 0x01:
88:task/KeyTask.c **** CtVal = ValAdd(CtVal,STEP,CT_MAX_VAL);
89:task/KeyTask.c **** break;
90:task/KeyTask.c ****
91:task/KeyTask.c ****
92:task/KeyTask.c **** case 0x02:
93:task/KeyTask.c **** H_Alarm = ValAdd(H_Alarm,STEP,PT_MAX_VAL);
94:task/KeyTask.c **** break;
95:task/KeyTask.c ****
96:task/KeyTask.c **** case 0x03:
97:task/KeyTask.c **** L_Alarm = ValAdd(L_Alarm,STEP,PT_MAX_VAL);
98:task/KeyTask.c **** break;
99:task/KeyTask.c ****
100:task/KeyTask.c **** case 0x04:
101:task/KeyTask.c **** fDOKEY = 1;
102:task/KeyTask.c **** BaudAndData ^= 0x10;
103:task/KeyTask.c **** break;
104:task/KeyTask.c ****
105:task/KeyTask.c **** case 0x05:
106:task/KeyTask.c **** AddrVal = ValAdd(AddrVal,STEP,ADDR_MAX_VAL);
107:task/KeyTask.c **** break;
108:task/KeyTask.c ****
109:task/KeyTask.c **** case 0x06:
110:task/KeyTask.c **** fDOKEY = 1;
111:task/KeyTask.c **** AlarmSwitch ^= 0x01;
112:task/KeyTask.c **** break;
113:task/KeyTask.c ****
114:task/KeyTask.c **** default:
115:task/KeyTask.c **** break;
116:task/KeyTask.c **** }
117:task/KeyTask.c **** break;
118:task/KeyTask.c ****
119:task/KeyTask.c **** case 6:
120:task/KeyTask.c **** switch (MenuID & 0x0f) //DN鍵數值減一
121:task/KeyTask.c **** {
122:task/KeyTask.c **** case 0x00:
123:task/KeyTask.c **** PtVal = ValDec(PtVal,STEP,PT_MAX_VAL);
124:task/KeyTask.c **** break;
125:task/KeyTask.c ****
126:task/KeyTask.c **** case 0x01:
127:task/KeyTask.c **** CtVal = ValDec(CtVal,STEP,CT_MAX_VAL);
128:task/KeyTask.c **** break;
129:task/KeyTask.c ****
130:task/KeyTask.c **** case 0x02:
131:task/KeyTask.c **** H_Alarm = ValDec(H_Alarm,STEP,PT_MAX_VAL);
132:task/KeyTask.c **** break;
133:task/KeyTask.c ****
134:task/KeyTask.c **** case 0x03:
135:task/KeyTask.c **** L_Alarm = ValDec(L_Alarm,STEP,PT_MAX_VAL);
136:task/KeyTask.c **** break;
137:task/KeyTask.c ****
138:task/KeyTask.c **** case 0x04:
139:task/KeyTask.c **** fDOKEY = 1;
140:task/KeyTask.c **** BaudAndData ^= 0x10;
141:task/KeyTask.c **** break;
142:task/KeyTask.c ****
143:task/KeyTask.c **** case 0x05:
144:task/KeyTask.c **** AddrVal = ValDec(AddrVal,STEP,ADDR_MAX_VAL);
145:task/KeyTask.c **** break;
146:task/KeyTask.c ****
147:task/KeyTask.c **** case 0x06:
148:task/KeyTask.c **** fDOKEY = 1;
149:task/KeyTask.c **** AlarmSwitch ^= 0x01;
150:task/KeyTask.c **** break;
151:task/KeyTask.c ****
152:task/KeyTask.c **** default:
153:task/KeyTask.c **** break;
154:task/KeyTask.c **** }
155:task/KeyTask.c **** break;
156:task/KeyTask.c ****
157:task/KeyTask.c **** case 7:
158:task/KeyTask.c **** switch (MenuID & 0x0f)
159:task/KeyTask.c **** {
160:task/KeyTask.c **** case 0x00:
161:task/KeyTask.c **** PtVal = ValAdd(PtVal,FAST_STEP,PT_MAX_VAL);
162:task/KeyTask.c **** break;
163:task/KeyTask.c ****
164:task/KeyTask.c **** case 0x01:
165:task/KeyTask.c **** CtVal = ValAdd(CtVal,FAST_STEP,CT_MAX_VAL);
166:task/KeyTask.c **** break;
167:task/KeyTask.c ****
168:task/KeyTask.c **** case 0x02:
169:task/KeyTask.c **** H_Alarm = ValAdd(H_Alarm,FAST_STEP,PT_MAX_VAL);
170:task/KeyTask.c **** break;
171:task/KeyTask.c ****
172:task/KeyTask.c **** case 0x03:
173:task/KeyTask.c **** L_Alarm = ValAdd(L_Alarm,FAST_STEP,PT_MAX_VAL);
174:task/KeyTask.c **** break;
175:task/KeyTask.c ****
176:task/KeyTask.c **** case 0x04:
177:task/KeyTask.c **** AddrVal = ValAdd(AddrVal,FAST_STEP,ADDR_MAX_VAL);
178:task/KeyTask.c **** break;
179:task/KeyTask.c ****
180:task/KeyTask.c **** default:
181:task/KeyTask.c **** break;
182:task/KeyTask.c **** }
183:task/KeyTask.c **** break;
184:task/KeyTask.c ****
185:task/KeyTask.c **** case 8:
186:task/KeyTask.c **** switch (MenuID & 0x0f) //DN鍵數值減一
187:task/KeyTask.c **** {
188:task/KeyTask.c **** case 0x00:
189:task/KeyTask.c **** PtVal = ValDec(PtVal,FAST_STEP,PT_MAX_VAL);
190:task/KeyTask.c **** break;
191:task/KeyTask.c ****
192:task/KeyTask.c **** case 0x01:
193:task/KeyTask.c **** CtVal = ValDec(CtVal,FAST_STEP,CT_MAX_VAL);
194:task/KeyTask.c **** break;
195:task/KeyTask.c ****
196:task/KeyTask.c **** case 0x02:
197:task/KeyTask.c **** H_Alarm = ValDec(H_Alarm,FAST_STEP,PT_MAX_VAL);
198:task/KeyTask.c **** break;
199:task/KeyTask.c ****
200:task/KeyTask.c **** case 0x03:
201:task/KeyTask.c **** L_Alarm = ValDec(L_Alarm,FAST_STEP,PT_MAX_VAL);
202:task/KeyTask.c **** break;
203:task/KeyTask.c ****
204:task/KeyTask.c **** case 0x04:
205:task/KeyTask.c **** AddrVal = ValDec(AddrVal,FAST_STEP,ADDR_MAX_VAL);
206:task/KeyTask.c **** break;
207:task/KeyTask.c ****
208:task/KeyTask.c **** default:
209:task/KeyTask.c **** break;
210:task/KeyTask.c **** }
211:task/KeyTask.c **** break;
212:task/KeyTask.c ****
213:task/KeyTask.c **** default:
214:task/KeyTask.c **** return;
215:task/KeyTask.c **** }
216:task/KeyTask.c **** MenuDis(MenuID);
217:task/KeyTask.c **** fDispNow = 1; //立即顯示
218:task/KeyTask.c **** }
219:task/KeyTask.c **** //------------------------------------------------------
220:task/KeyTask.c **** uint16 ValAdd(uint16 ValTemp,uint8 ValCount,uint16 MaxVal)
221:task/KeyTask.c **** {
170 .LM1:
171 /* prologue: frame size=0 */
172 /* prologue end (size=0) */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -