📄 misc.lis
字号:
01AE .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
01AE .dbfunc e swGet_Key3 _swGet_Key3 fi
01AE .dbsym s wKeyStatus L52 i
.even
01AE _swGet_Key3::
01AE .dbline -1
01AE .dbline 174
01AE ; }
01AE ;
01AE ; //******************************************************************************
01AE ; // Function : swGet_Key3
01AE ; // Input : none
01AE ; // Output : true - Key3 active; false - Key3 - passitive
01AE ; // Description : Key3 Detection,rising edge active
01AE ; //******************************************************************************
01AE ; INT16U swGet_Key3(void)
01AE ; {
01AE .dbline 176
01AE ; static INT16U wKeyStatus = 1;
01AE ; if(wKeyStatus == 1)
01AE 80910800 lds R24,L52
01B2 90910900 lds R25,L52+1
01B6 8130 cpi R24,1
01B8 E0E0 ldi R30,0
01BA 9E07 cpc R25,R30
01BC 49F4 brne L53
01BE .dbline 177
01BE ; {
01BE .dbline 178
01BE ; if((PINB & (1 << cKey3)) == 0) //Key Pressed
01BE B299 sbic 0x16,2
01C0 1AC0 rjmp L54
01C2 .dbline 179
01C2 ; {
01C2 .dbline 180
01C2 ; wKeyStatus = 0;
01C2 2224 clr R2
01C4 3324 clr R3
01C6 30920900 sts L52+1,R3
01CA 20920800 sts L52,R2
01CE .dbline 181
01CE ; }
01CE .dbline 182
01CE ; }
01CE 13C0 xjmp L54
01D0 L53:
01D0 .dbline 183
01D0 ; else if(wKeyStatus == 0)
01D0 20900800 lds R2,L52
01D4 30900900 lds R3,L52+1
01D8 2220 tst R2
01DA 69F4 brne L57
01DC 3320 tst R3
01DE 59F4 brne L57
01E0 X5:
01E0 .dbline 184
01E0 ; {
01E0 .dbline 185
01E0 ; if(PINB & (1 << cKey3)) //Key Released
01E0 B29B sbis 0x16,2
01E2 09C0 rjmp L59
01E4 .dbline 186
01E4 ; {
01E4 .dbline 187
01E4 ; wKeyStatus = 1;
01E4 81E0 ldi R24,1
01E6 90E0 ldi R25,0
01E8 90930900 sts L52+1,R25
01EC 80930800 sts L52,R24
01F0 .dbline 188
01F0 ; return(true);
01F0 01E0 ldi R16,1
01F2 10E0 ldi R17,0
01F4 02C0 xjmp L51
01F6 L59:
01F6 .dbline 190
01F6 ; }
01F6 ; }
01F6 L57:
01F6 L54:
01F6 .dbline 191
01F6 ; return(false);
01F6 0027 clr R16
01F8 1127 clr R17
01FA .dbline -2
01FA L51:
01FA .dbline 0 ; func end
01FA 0895 ret
01FC .dbend
.area data(ram, con, rel)
000A .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
000A L62:
000A .blkb 2
.area idata
000A 0100 .word 1
.area data(ram, con, rel)
000C .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
.area text(rom, con, rel)
01FC .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\misc.c
01FC .dbfunc e swGet_Key4 _swGet_Key4 fi
01FC .dbsym s wKeyStatus L62 i
.even
01FC _swGet_Key4::
01FC .dbline -1
01FC .dbline 201
01FC ; }
01FC ;
01FC ; //******************************************************************************
01FC ; // Function : swGet_Key4
01FC ; // Input : none
01FC ; // Output : true - Key4 active; false - Key4 - passitive
01FC ; // Description : Key4 Detection,rising edge active
01FC ; //******************************************************************************
01FC ; INT16U swGet_Key4(void)
01FC ; {
01FC .dbline 203
01FC ; static INT16U wKeyStatus = 1;
01FC ; if(wKeyStatus == 1)
01FC 80910A00 lds R24,L62
0200 90910B00 lds R25,L62+1
0204 8130 cpi R24,1
0206 E0E0 ldi R30,0
0208 9E07 cpc R25,R30
020A 49F4 brne L63
020C .dbline 204
020C ; {
020C .dbline 205
020C ; if((PINB & (1 << cKey4)) == 0) //Key Pressed
020C B399 sbic 0x16,3
020E 1AC0 rjmp L64
0210 .dbline 206
0210 ; {
0210 .dbline 207
0210 ; wKeyStatus = 0;
0210 2224 clr R2
0212 3324 clr R3
0214 30920B00 sts L62+1,R3
0218 20920A00 sts L62,R2
021C .dbline 208
021C ; }
021C .dbline 209
021C ; }
021C 13C0 xjmp L64
021E L63:
021E .dbline 210
021E ; else if(wKeyStatus == 0)
021E 20900A00 lds R2,L62
0222 30900B00 lds R3,L62+1
0226 2220 tst R2
0228 69F4 brne L67
022A 3320 tst R3
022C 59F4 brne L67
022E X6:
022E .dbline 211
022E ; {
022E .dbline 212
022E ; if(PINB & (1 << cKey4)) //Key Released
022E B39B sbis 0x16,3
0230 09C0 rjmp L69
0232 .dbline 213
0232 ; {
0232 .dbline 214
0232 ; wKeyStatus = 1;
0232 81E0 ldi R24,1
0234 90E0 ldi R25,0
0236 90930B00 sts L62+1,R25
023A 80930A00 sts L62,R24
023E .dbline 215
023E ; return(true);
023E 01E0 ldi R16,1
0240 10E0 ldi R17,0
0242 02C0 xjmp L61
0244 L69:
0244 .dbline 217
0244 ; }
0244 ; }
0244 L67:
0244 L64:
0244 .dbline 218
0244 ; return(false);
0244 0027 clr R16
0246 1127 clr R17
0248 .dbline -2
0248 L61:
0248 .dbline 0 ; func end
0248 0895 ret
024A .dbend
024A .dbfunc e Key_Detection _Key_Detection fV
.even
024A _Key_Detection::
024A .dbline -1
024A .dbline 228
024A ; }
024A ;
024A ; //******************************************************************************
024A ; // Function : Key_Detection
024A ; // Input : none
024A ; // Output : none
024A ; // Description : Keys Detection.if active,send Key Event to task
024A ; //******************************************************************************
024A ; void Key_Detection(void)
024A ; {
024A .dbline 229
024A ; if(swGet_Key1() == true)
024A 63DF xcall _swGet_Key1
024C 0130 cpi R16,1
024E E0E0 ldi R30,0
0250 1E07 cpc R17,R30
0252 29F4 brne L72
0254 .dbline 230
0254 ; {
0254 .dbline 231
0254 ; OS_Event_Post(cPrioTask1,eTask1_Key);
0254 21E0 ldi R18,1
0256 30E0 ldi R19,0
0258 0027 clr R16
025A 0E940000 xcall _OS_Event_Post
025E .dbline 232
025E ; }
025E L72:
025E .dbline 233
025E ; if(swGet_Key2() == true)
025E 80DF xcall _swGet_Key2
0260 0130 cpi R16,1
0262 E0E0 ldi R30,0
0264 1E07 cpc R17,R30
0266 29F4 brne L74
0268 .dbline 234
0268 ; {
0268 .dbline 235
0268 ; OS_Event_Post(cPrioTask2,eTask2_Key);
0268 21E0 ldi R18,1
026A 30E0 ldi R19,0
026C 01E0 ldi R16,1
026E 0E940000 xcall _OS_Event_Post
0272 .dbline 236
0272 ; }
0272 L74:
0272 .dbline 237
0272 ; if(swGet_Key3() == true)
0272 9DDF xcall _swGet_Key3
0274 0130 cpi R16,1
0276 E0E0 ldi R30,0
0278 1E07 cpc R17,R30
027A 29F4 brne L76
027C .dbline 238
027C ; {
027C .dbline 239
027C ; OS_Event_Post(cPrioTask3,eTask3_Key);
027C 21E0 ldi R18,1
027E 30E0 ldi R19,0
0280 02E0 ldi R16,2
0282 0E940000 xcall _OS_Event_Post
0286 .dbline 240
0286 ; }
0286 L76:
0286 .dbline 241
0286 BADF xcall _swGet_Key4
0288 0130 cpi R16,1
028A E0E0 ldi R30,0
028C 1E07 cpc R17,R30
028E 29F4 brne L78
0290 .dbline 242
0290 .dbline 243
0290 21E0 ldi R18,1
0292 30E0 ldi R19,0
0294 03E0 ldi R16,3
0296 0E940000 xcall _OS_Event_Post
029A .dbline 244
029A L78:
029A .dbline -2
029A .dbline 245
029A ; if(swGet_Key4() == true)
029A ; {
029A ; OS_Event_Post(cPrioTask4,eTask4_Key);
029A ; }
029A ; }
029A L71:
029A .dbline 0 ; func end
029A 0895 ret
029C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -