📄 task.lis
字号:
0180 .dbline 216
0180 ; if(bKey_Status == cOFF_Status)
0180 20900200 lds R2,L54
0184 2220 tst R2
0186 21F4 brne L70
0188 .dbline 217
0188 ; {
0188 .dbline 218
0188 ; bKey_Status = cTOGGLE_Status;
0188 82E0 ldi R24,2
018A 80930200 sts L54,R24
018E .dbline 219
018E ; }
018E 07C0 xjmp L71
0190 L70:
0190 .dbline 220
0190 ; else if(bKey_Status == cTOGGLE_Status)
0190 80910200 lds R24,L54
0194 8230 cpi R24,2
0196 19F4 brne L72
0198 .dbline 221
0198 ; {
0198 .dbline 222
0198 ; bKey_Status = cOFF_Status;
0198 2224 clr R2
019A 20920200 sts L54,R2
019E .dbline 223
019E ; }
019E L72:
019E L71:
019E .dbline 224
019E ; }
019E L68:
019E .dbline 225
019E L56:
019E .dbline 188
019E C9CF xjmp L55
01A0 X4:
01A0 .dbline -2
01A0 .dbline 226
01A0 ; }
01A0 ; }
01A0 L53:
01A0 0E940000 xcall pop_gset1
01A4 .dbline 0 ; func end
01A4 0895 ret
01A6 .dbsym r wTask_Event 20 i
01A6 .dbend
.area data(ram, con, rel)
0003 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
0003 L75:
0003 .blkb 1
.area idata
0003 00 .byte 0
.area data(ram, con, rel)
0004 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
.area text(rom, con, rel)
01A6 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
01A6 .dbfunc e Task4 _Task4 fV
01A6 .dbsym s bKey_Status L75 c
01A6 ; wTask_Event -> R20,R21
.even
01A6 _Task4::
01A6 0E940000 xcall push_gset1
01AA .dbline -1
01AA .dbline 235
01AA ;
01AA ; //******************************************************************************
01AA ; // Function : Task4
01AA ; // Input : none
01AA ; // Output : none
01AA ; // Description : Task4 process,Control LED4
01AA ; //******************************************************************************
01AA ; void Task4(void)
01AA ; {
01AA 3AC0 xjmp L77
01AC L76:
01AC .dbline 239
01AC ; INT16U wTask_Event;
01AC ; static INT8U bKey_Status = cOFF_Status;
01AC ; while(1)
01AC ; {
01AC .dbline 241
01AC ; //task switch
01AC ; if(OS_Task_Switch(cPrioTask4) == true)
01AC 03E0 ldi R16,3
01AE 0E940000 xcall _OS_Task_Switch
01B2 0130 cpi R16,1
01B4 E0E0 ldi R30,0
01B6 1E07 cpc R17,R30
01B8 09F4 brne L79
01BA .dbline 242
01BA ; {
01BA .dbline 243
01BA ; return;
01BA 33C0 xjmp L74
01BC L79:
01BC .dbline 246
01BC ; }
01BC ; //get event
01BC ; wTask_Event = OS_Event_Pend(cPrioTask4);
01BC 03E0 ldi R16,3
01BE 0E940000 xcall _OS_Event_Pend
01C2 A801 movw R20,R16
01C4 .dbline 248
01C4 ; //event check
01C4 ; if(wTask_Event == 0)
01C4 0030 cpi R16,0
01C6 0107 cpc R16,R17
01C8 09F4 brne L81
01CA X5:
01CA .dbline 249
01CA ; {
01CA .dbline 250
01CA ; return;
01CA 2BC0 xjmp L74
01CC L81:
01CC .dbline 253
01CC ; }
01CC ; //event parsing : timer event
01CC ; if(wTask_Event & (1 << eTask4_Timer))
01CC 40FF sbrs R20,0
01CE 17C0 rjmp L83
01D0 .dbline 254
01D0 ; {
01D0 .dbline 255
01D0 ; if(bKey_Status == cOFF_Status)
01D0 20900300 lds R2,L75
01D4 2220 tst R2
01D6 21F4 brne L85
01D8 .dbline 256
01D8 ; {
01D8 .dbline 257
01D8 ; LED_OFF(cLED4);
01D8 07E0 ldi R16,7
01DA 0E940000 xcall _LED_OFF
01DE .dbline 258
01DE ; }
01DE 0FC0 xjmp L86
01E0 L85:
01E0 .dbline 259
01E0 ; else if(bKey_Status == cON_Status)
01E0 80910300 lds R24,L75
01E4 8130 cpi R24,1
01E6 21F4 brne L87
01E8 .dbline 260
01E8 ; {
01E8 .dbline 261
01E8 ; LED_ON(cLED4);
01E8 07E0 ldi R16,7
01EA 0E940000 xcall _LED_ON
01EE .dbline 262
01EE ; }
01EE 07C0 xjmp L88
01F0 L87:
01F0 .dbline 263
01F0 ; else if(bKey_Status == cTOGGLE_Status)
01F0 80910300 lds R24,L75
01F4 8230 cpi R24,2
01F6 19F4 brne L89
01F8 .dbline 264
01F8 ; {
01F8 .dbline 265
01F8 ; LED_TOGGLE(cLED4);
01F8 07E0 ldi R16,7
01FA 0E940000 xcall _LED_TOGGLE
01FE .dbline 266
01FE ; }
01FE L89:
01FE L88:
01FE L86:
01FE .dbline 267
01FE ; }
01FE L83:
01FE .dbline 269
01FE ; //event parsing : key event
01FE ; if(wTask_Event & (1 << eTask4_Key))
01FE 41FF sbrs R20,1
0200 0FC0 rjmp L91
0202 .dbline 270
0202 ; {
0202 .dbline 271
0202 ; if(bKey_Status == cOFF_Status)
0202 20900300 lds R2,L75
0206 2220 tst R2
0208 21F4 brne L93
020A .dbline 272
020A ; {
020A .dbline 273
020A ; bKey_Status = cTOGGLE_Status;
020A 82E0 ldi R24,2
020C 80930300 sts L75,R24
0210 .dbline 274
0210 ; }
0210 07C0 xjmp L94
0212 L93:
0212 .dbline 275
0212 ; else if(bKey_Status == cTOGGLE_Status)
0212 80910300 lds R24,L75
0216 8230 cpi R24,2
0218 19F4 brne L95
021A .dbline 276
021A ; {
021A .dbline 277
021A ; bKey_Status = cOFF_Status;
021A 2224 clr R2
021C 20920300 sts L75,R2
0220 .dbline 278
0220 ; }
0220 L95:
0220 L94:
0220 .dbline 279
0220 ; }
0220 L91:
0220 .dbline 280
0220 L77:
0220 .dbline 238
0220 C5CF xjmp L76
0222 X6:
0222 .dbline -2
0222 .dbline 281
0222 ; }
0222 ; }
0222 L74:
0222 0E940000 xcall pop_gset1
0226 .dbline 0 ; func end
0226 0895 ret
0228 .dbsym r wTask_Event 20 i
0228 .dbend
0228 .dbfunc e Task_Start _Task_Start fV
.even
0228 _Task_Start::
0228 .dbline -1
0228 .dbline 290
0228 ;
0228 ; //******************************************************************************
0228 ; // Function : Task_Start
0228 ; // Input : none
0228 ; // Output : none
0228 ; // Description : Standard function format,put all tasks into while(1)
0228 ; //******************************************************************************
0228 ; void Task_Start(void)
0228 ; {
0228 04C0 xjmp L99
022A L98:
022A .dbline 292
022A .dbline 293
022A F6DE xcall _Task1
022C .dbline 294
022C 3EDF xcall _Task2
022E .dbline 295
022E 7EDF xcall _Task3
0230 .dbline 296
0230 BADF xcall _Task4
0232 .dbline 297
0232 L99:
0232 .dbline 291
0232 FBCF xjmp L98
0234 X7:
0234 .dbline -2
0234 .dbline 298
0234 ; while(1)
0234 ; {
0234 ; Task1();
0234 ; Task2();
0234 ; Task3();
0234 ; Task4();
0234 ; }
0234 ; }
0234 L97:
0234 .dbline 0 ; func end
0234 0895 ret
0236 .dbend
0236 .dbfunc e Task_Init _Task_Init fV
.even
0236 _Task_Init::
0236 .dbline -1
0236 .dbline 307
0236 ;
0236 ; //******************************************************************************
0236 ; // Function : Task_Init
0236 ; // Input : none
0236 ; // Output : none
0236 ; // Description : Standard function format,put all tasks Initialization here
0236 ; //******************************************************************************
0236 ; void Task_Init(void)
0236 ; {
0236 .dbline 308
0236 ; Task1_Init();
0236 E4DE xcall _Task1_Init
0238 .dbline 309
0238 ; Task2_Init();
0238 E6DE xcall _Task2_Init
023A .dbline 310
023A ; Task3_Init();
023A E8DE xcall _Task3_Init
023C .dbline 311
023C ; Task4_Init();
023C .dbline -2
023C .dbline 312
023C ; }
023C L101:
023C .dbline 0 ; func end
023C EACE xjmp _Task4_Init
023E .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -