⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 task.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -