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

📄 task.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00A4           ;       }
 00A4           ; }
 00A4           L5:
 00A4 0E940000          xcall pop_gset1
 00A8                   .dbline 0 ; func end
 00A8 0895              ret
 00AA                   .dbsym r wTask_Event 20 i
 00AA                   .dbend
                        .area data(ram, con, rel)
 0001                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
 0001           L31:
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
                        .area text(rom, con, rel)
 00AA                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
 00AA                   .dbfunc e Task2 _Task2 fV
 00AA                   .dbsym s bKey_Status L31 c
 00AA           ;    wTask_Event -> R20,R21
                        .even
 00AA           _Task2::
 00AA 0E940000          xcall push_gset1
 00AE                   .dbline -1
 00AE                   .dbline 131
 00AE           ; 
 00AE           ; //******************************************************************************
 00AE           ; // Function    : Task2
 00AE           ; // Input       : none
 00AE           ; // Output      : none
 00AE           ; // Description : Task2 process,Control LED2
 00AE           ; //******************************************************************************
 00AE           ; void Task2(void)
 00AE           ; {
 00AE 3AC0              xjmp L33
 00B0           L32:
 00B0                   .dbline 135
 00B0           ;     INT16U wTask_Event;       
 00B0           ;     static INT8U bKey_Status = cOFF_Status;
 00B0           ;     while(1)
 00B0           ;       {
 00B0                   .dbline 137
 00B0           ;               //task switch
 00B0           ;               if(OS_Task_Switch(cPrioTask2) == true)
 00B0 01E0              ldi R16,1
 00B2 0E940000          xcall _OS_Task_Switch
 00B6 0130              cpi R16,1
 00B8 E0E0              ldi R30,0
 00BA 1E07              cpc R17,R30
 00BC 09F4              brne L35
 00BE                   .dbline 138
 00BE           ;               {
 00BE                   .dbline 139
 00BE           ;                       return;
 00BE 33C0              xjmp L30
 00C0           L35:
 00C0                   .dbline 142
 00C0           ;               }
 00C0           ;               //get event
 00C0           ;               wTask_Event = OS_Event_Pend(cPrioTask2);
 00C0 01E0              ldi R16,1
 00C2 0E940000          xcall _OS_Event_Pend
 00C6 A801              movw R20,R16
 00C8                   .dbline 143
 00C8           ;         if(wTask_Event == 0)
 00C8 0030              cpi R16,0
 00CA 0107              cpc R16,R17
 00CC 09F4              brne L37
 00CE           X2:
 00CE                   .dbline 144
 00CE           ;         {
 00CE                   .dbline 145
 00CE           ;             return;
 00CE 2BC0              xjmp L30
 00D0           L37:
 00D0                   .dbline 148
 00D0           ;         }
 00D0           ;               //event parsing : timer event
 00D0           ;               if(wTask_Event & (1 << eTask2_Timer))
 00D0 40FF              sbrs R20,0
 00D2 17C0              rjmp L39
 00D4                   .dbline 149
 00D4           ;               {
 00D4                   .dbline 150
 00D4           ;                       if(bKey_Status == cOFF_Status)
 00D4 20900100          lds R2,L31
 00D8 2220              tst R2
 00DA 21F4              brne L41
 00DC                   .dbline 151
 00DC           ;                       {
 00DC                   .dbline 152
 00DC           ;                               LED_OFF(cLED2);
 00DC 05E0              ldi R16,5
 00DE 0E940000          xcall _LED_OFF
 00E2                   .dbline 153
 00E2           ;                       }
 00E2 0FC0              xjmp L42
 00E4           L41:
 00E4                   .dbline 154
 00E4           ;                       else if(bKey_Status == cON_Status)
 00E4 80910100          lds R24,L31
 00E8 8130              cpi R24,1
 00EA 21F4              brne L43
 00EC                   .dbline 155
 00EC           ;                       {
 00EC                   .dbline 156
 00EC           ;                               LED_ON(cLED2);
 00EC 05E0              ldi R16,5
 00EE 0E940000          xcall _LED_ON
 00F2                   .dbline 157
 00F2           ;                       }
 00F2 07C0              xjmp L44
 00F4           L43:
 00F4                   .dbline 158
 00F4           ;                       else if(bKey_Status == cTOGGLE_Status)
 00F4 80910100          lds R24,L31
 00F8 8230              cpi R24,2
 00FA 19F4              brne L45
 00FC                   .dbline 159
 00FC           ;                       {
 00FC                   .dbline 160
 00FC           ;                               LED_TOGGLE(cLED2);
 00FC 05E0              ldi R16,5
 00FE 0E940000          xcall _LED_TOGGLE
 0102                   .dbline 161
 0102           ;                       }
 0102           L45:
 0102           L44:
 0102           L42:
 0102                   .dbline 162
 0102           ;               }
 0102           L39:
 0102                   .dbline 164
 0102           ;               //event parsing : key event
 0102           ;               if(wTask_Event & (1 << eTask2_Key))
 0102 41FF              sbrs R20,1
 0104 0FC0              rjmp L47
 0106                   .dbline 165
 0106           ;               {
 0106                   .dbline 166
 0106           ;                       if(bKey_Status == cOFF_Status)
 0106 20900100          lds R2,L31
 010A 2220              tst R2
 010C 21F4              brne L49
 010E                   .dbline 167
 010E           ;                       {
 010E                   .dbline 168
 010E           ;                               bKey_Status = cTOGGLE_Status;
 010E 82E0              ldi R24,2
 0110 80930100          sts L31,R24
 0114                   .dbline 169
 0114           ;                       }
 0114 07C0              xjmp L50
 0116           L49:
 0116                   .dbline 170
 0116           ;                       else if(bKey_Status == cTOGGLE_Status)
 0116 80910100          lds R24,L31
 011A 8230              cpi R24,2
 011C 19F4              brne L51
 011E                   .dbline 171
 011E           ;                       {
 011E                   .dbline 172
 011E           ;                               bKey_Status = cOFF_Status;
 011E 2224              clr R2
 0120 20920100          sts L31,R2
 0124                   .dbline 173
 0124           ;                       }
 0124           L51:
 0124           L50:
 0124                   .dbline 174
 0124           ;               }
 0124           L47:
 0124                   .dbline 175
 0124           L33:
 0124                   .dbline 134
 0124 C5CF              xjmp L32
 0126           X3:
 0126                   .dbline -2
 0126                   .dbline 176
 0126           ;       }
 0126           ; }
 0126           L30:
 0126 0E940000          xcall pop_gset1
 012A                   .dbline 0 ; func end
 012A 0895              ret
 012C                   .dbsym r wTask_Event 20 i
 012C                   .dbend
                        .area data(ram, con, rel)
 0002                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
 0002           L54:
 0002                   .blkb 1
                        .area idata
 0002 00                .byte 0
                        .area data(ram, con, rel)
 0003                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
                        .area text(rom, con, rel)
 012C                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
 012C                   .dbfunc e Task3 _Task3 fV
 012C                   .dbsym s bKey_Status L54 c
 012C           ;    wTask_Event -> R20,R21
                        .even
 012C           _Task3::
 012C 0E940000          xcall push_gset1
 0130                   .dbline -1
 0130                   .dbline 185
 0130           ; 
 0130           ; //******************************************************************************
 0130           ; // Function    : Task3
 0130           ; // Input       : none
 0130           ; // Output      : none
 0130           ; // Description : Task3 process,Control LED3
 0130           ; //******************************************************************************
 0130           ; void Task3(void)
 0130           ; {
 0130 36C0              xjmp L56
 0132           L55:
 0132                   .dbline 189
 0132           ;       INT16U wTask_Event;
 0132           ;     static INT8U bKey_Status = cOFF_Status;
 0132           ;     while(1)
 0132           ;       {
 0132                   .dbline 191
 0132           ;               //task switch
 0132           ;               if(OS_Task_Switch(cPrioTask3) == true)
 0132 02E0              ldi R16,2
 0134 0E940000          xcall _OS_Task_Switch
 0138 0130              cpi R16,1
 013A E0E0              ldi R30,0
 013C 1E07              cpc R17,R30
 013E 09F4              brne L58
 0140                   .dbline 192
 0140           ;               {
 0140                   .dbline 193
 0140           ;                       return;
 0140 2FC0              xjmp L53
 0142           L58:
 0142                   .dbline 196
 0142           ;               }
 0142           ;               //get event
 0142           ;               wTask_Event = OS_Event_Pend(cPrioTask3);
 0142 02E0              ldi R16,2
 0144 0E940000          xcall _OS_Event_Pend
 0148 A801              movw R20,R16
 014A                   .dbline 198
 014A           ;               //event parsing : timer event
 014A           ;               if(wTask_Event & (1 << eTask3_Timer))
 014A 00FF              sbrs R16,0
 014C 17C0              rjmp L60
 014E                   .dbline 199
 014E           ;               {
 014E                   .dbline 200
 014E           ;                       if(bKey_Status == cOFF_Status)
 014E 20900200          lds R2,L54
 0152 2220              tst R2
 0154 21F4              brne L62
 0156                   .dbline 201
 0156           ;                       {
 0156                   .dbline 202
 0156           ;                               LED_OFF(cLED3);
 0156 06E0              ldi R16,6
 0158 0E940000          xcall _LED_OFF
 015C                   .dbline 203
 015C           ;                       }
 015C 0FC0              xjmp L63
 015E           L62:
 015E                   .dbline 204
 015E           ;                       else if(bKey_Status == cON_Status)
 015E 80910200          lds R24,L54
 0162 8130              cpi R24,1
 0164 21F4              brne L64
 0166                   .dbline 205
 0166           ;                       {
 0166                   .dbline 206
 0166           ;                               LED_ON(cLED3);
 0166 06E0              ldi R16,6
 0168 0E940000          xcall _LED_ON
 016C                   .dbline 207
 016C           ;                       }
 016C 07C0              xjmp L65
 016E           L64:
 016E                   .dbline 208
 016E           ;                       else if(bKey_Status == cTOGGLE_Status)
 016E 80910200          lds R24,L54
 0172 8230              cpi R24,2
 0174 19F4              brne L66
 0176                   .dbline 209
 0176           ;                       {
 0176                   .dbline 210
 0176           ;                               LED_TOGGLE(cLED3);
 0176 06E0              ldi R16,6
 0178 0E940000          xcall _LED_TOGGLE
 017C                   .dbline 211
 017C           ;                       }
 017C           L66:
 017C           L65:
 017C           L63:
 017C                   .dbline 212
 017C           ;               }
 017C           L60:
 017C                   .dbline 214
 017C           ;               //event parsing : key event
 017C           ;               if(wTask_Event & (1 << eTask3_Key))
 017C 41FF              sbrs R20,1
 017E 0FC0              rjmp L68
 0180                   .dbline 215
 0180           ;               {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -