📄 task.lis
字号:
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 + -