📄 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 + -