?? user.lis
字號:
0108 .dbend
0108 .dbfunc s AppTask1 _AppTask1 fV
0108 ; p_arg -> R20,R21
.even
0108 _AppTask1:
0108 0E940000 xcall push_gset1
010C A801 movw R20,R16
010E .dbline -1
010E .dbline 157
010E ;
010E ; /*
010E ; *********************************************************************************************************
010E ; * TASK #1
010E ; *********************************************************************************************************
010E ; */
010E ;
010E ; static void AppTask1(void *p_arg)
010E ; {
010E .dbline 158
010E ; p_arg = p_arg;
010E 06C0 xjmp L9
0110 L8:
0110 .dbline 159
0110 .dbline 160
0110 02E0 ldi R16,2
0112 23D0 xcall _LED_Toggle
0114 .dbline 161
0114 0AE0 ldi R16,10
0116 10E0 ldi R17,0
0118 0E940000 xcall _OSTimeDly
011C .dbline 162
011C L9:
011C .dbline 159
011C F9CF xjmp L8
011E X1:
011E .dbline -2
011E .dbline 163
011E ; while (TRUE) {
011E ; LED_Toggle(2);
011E ; OSTimeDly(OS_TICKS_PER_SEC / 5);
011E ; }
011E ; }
011E L7:
011E 0E940000 xcall pop_gset1
0122 .dbline 0 ; func end
0122 0895 ret
0124 .dbsym r p_arg 20 pV
0124 .dbend
0124 .dbfunc s AppTask2 _AppTask2 fV
0124 ; p_arg -> R20,R21
.even
0124 _AppTask2:
0124 0E940000 xcall push_gset1
0128 A801 movw R20,R16
012A .dbline -1
012A .dbline 172
012A ;
012A ; /*
012A ; *********************************************************************************************************
012A ; * TASK #2
012A ; *********************************************************************************************************
012A ; */
012A ;
012A ; static void AppTask2(void *p_arg)
012A ; {
012A .dbline 173
012A ; p_arg = p_arg;
012A 06C0 xjmp L13
012C L12:
012C .dbline 174
012C .dbline 175
012C 03E0 ldi R16,3
012E 15D0 xcall _LED_Toggle
0130 .dbline 176
0130 09E1 ldi R16,25
0132 10E0 ldi R17,0
0134 0E940000 xcall _OSTimeDly
0138 .dbline 177
0138 L13:
0138 .dbline 174
0138 F9CF xjmp L12
013A X2:
013A .dbline -2
013A .dbline 178
013A ; while (TRUE) {
013A ; LED_Toggle(3);
013A ; OSTimeDly(OS_TICKS_PER_SEC / 2);
013A ; }
013A ; }
013A L11:
013A 0E940000 xcall pop_gset1
013E .dbline 0 ; func end
013E 0895 ret
0140 .dbsym r p_arg 20 pV
0140 .dbend
0140 .dbfunc s AppIOInit _AppIOInit fV
.even
0140 _AppIOInit:
0140 .dbline -1
0140 .dbline 187
0140 ;
0140 ; /*
0140 ; *********************************************************************************************************
0140 ; * SETUP THE I/Os
0140 ; *********************************************************************************************************
0140 ; */
0140 ;
0140 ; static void AppIOInit (void)
0140 ; {
0140 .dbline 188
0140 ; DDRD = 0xFF; /* All PORTD pins are outputs */
0140 8FEF ldi R24,255
0142 81BB out 0x11,R24
0144 .dbline 189
0144 ; PORTD = 0xFF;
0144 82BB out 0x12,R24
0146 .dbline -2
0146 .dbline 190
0146 ; }
0146 L15:
0146 .dbline 0 ; func end
0146 0895 ret
0148 .dbend
0148 .dbfunc e OSTickISR_Init _OSTickISR_Init fV
.even
0148 _OSTickISR_Init::
0148 .dbline -1
0148 .dbline 199
0148 ;
0148 ; /*
0148 ; *********************************************************************************************************
0148 ; * SETUP THE TICK RATE
0148 ; *********************************************************************************************************
0148 ; */
0148 ;
0148 ; void OSTickISR_Init (void)
0148 ; {
0148 .dbline 200
0148 ; TCCR0 = 0x07; /* Set TIMER0 prescaler to CLK/1024 */
0148 87E0 ldi R24,7
014A 83BF out 0x33,R24
014C .dbline 201
014C ; TIMSK = 0x01; /* Enable TIMER0 overflow interrupt */
014C 81E0 ldi R24,1
014E 87BF out 0x37,R24
0150 .dbline -2
0150 .dbline 202
0150 ; }
0150 L16:
0150 .dbline 0 ; func end
0150 0895 ret
0152 .dbend
0152 .dbfunc e OSTickISR_Handler _OSTickISR_Handler fV
.even
0152 _OSTickISR_Handler::
0152 .dbline -1
0152 .dbline 212
0152 ;
0152 ;
0152 ; /*
0152 ; *********************************************************************************************************
0152 ; * SETUP THE TICK RATE
0152 ; *********************************************************************************************************
0152 ; */
0152 ;
0152 ; void OSTickISR_Handler (void)
0152 ; {
0152 .dbline 213
0152 ; TCNT0 = 256 - (CPU_CLK_FREQ / OS_TICKS_PER_SEC / 1024);
0152 89EB ldi R24,185
0154 82BF out 0x32,R24
0156 .dbline 214
0156 ; OSTimeTick();
0156 .dbline -2
0156 .dbline 215
0156 ; }
0156 L17:
0156 .dbline 0 ; func end
0156 0C940000 xjmp _OSTimeTick
015A .dbend
015A .dbfunc s LED_Toggle _LED_Toggle fV
015A ; cpu_sr -> R20
015A ; led -> R22
.even
015A _LED_Toggle:
015A 0E940000 xcall push_gset2
015E 602F mov R22,R16
0160 .dbline -1
0160 .dbline 224
0160 ;
0160 ; /*
0160 ; *********************************************************************************************************
0160 ; * TOGGLE LED
0160 ; *********************************************************************************************************
0160 ; */
0160 ;
0160 ; static void LED_Toggle (INT8U led)
0160 ; {
0160 .dbline 230
0160 ; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
0160 ; OS_CPU_SR cpu_sr;
0160 ; #endif
0160 ;
0160 ;
0160 ; OS_ENTER_CRITICAL();
0160 0E940000 xcall _OS_CPU_SR_Save
0164 402F mov R20,R16
0166 .dbline 231
0166 7727 clr R23
0168 6130 cpi R22,1
016A E0E0 ldi R30,0
016C 7E07 cpc R23,R30
016E 69F0 breq L22
0170 6230 cpi R22,2
0172 E0E0 ldi R30,0
0174 7E07 cpc R23,R30
0176 71F0 breq L23
0178 6330 cpi R22,3
017A E0E0 ldi R30,0
017C 7E07 cpc R23,R30
017E 79F0 breq L24
0180 6430 cpi R22,4
0182 E0E0 ldi R30,0
0184 7E07 cpc R23,R30
0186 81F0 breq L25
0188 13C0 xjmp L19
018A X3:
018A .dbline 231
018A ; switch (led) {
018A L22:
018A .dbline 233
018A ; case 1:
018A ; PORTD ^= 0x01;
018A 81E0 ldi R24,1
018C 22B2 in R2,0x12
018E 2826 eor R2,R24
0190 22BA out 0x12,R2
0192 .dbline 234
0192 ; break;
0192 0EC0 xjmp L20
0194 L23:
0194 .dbline 237
0194 ;
0194 ; case 2:
0194 ; PORTD ^= 0x02;
0194 82E0 ldi R24,2
0196 22B2 in R2,0x12
0198 2826 eor R2,R24
019A 22BA out 0x12,R2
019C .dbline 238
019C ; break;
019C 09C0 xjmp L20
019E L24:
019E .dbline 241
019E ;
019E ; case 3:
019E ; PORTD ^= 0x04;
019E 84E0 ldi R24,4
01A0 22B2 in R2,0x12
01A2 2826 eor R2,R24
01A4 22BA out 0x12,R2
01A6 .dbline 242
01A6 ; break;
01A6 04C0 xjmp L20
01A8 L25:
01A8 .dbline 245
01A8 ;
01A8 ; case 4:
01A8 ; PORTD ^= 0x08;
01A8 88E0 ldi R24,8
01AA 22B2 in R2,0x12
01AC 2826 eor R2,R24
01AE 22BA out 0x12,R2
01B0 .dbline 246
01B0 ; break;
01B0 L19:
01B0 L20:
01B0 .dbline 248
01B0 ; }
01B0 ; OS_EXIT_CRITICAL();
01B0 042F mov R16,R20
01B2 0E940000 xcall _OS_CPU_SR_Restore
01B6 .dbline -2
01B6 .dbline 249
01B6 ; }
01B6 L18:
01B6 0E940000 xcall pop_gset2
01BA .dbline 0 ; func end
01BA 0895 ret
01BC .dbsym r cpu_sr 20 c
01BC .dbsym r led 22 c
01BC .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\UCOS-II_AVR_ICC\RTOSIC~1\source\User.c
0000 _AppTask2Stk::
0000 .blkb 256
0100 .dbsym e AppTask2Stk _AppTask2Stk A[256:256]c
0100 _AppTask1Stk::
0100 .blkb 256
0200 .dbsym e AppTask1Stk _AppTask1Stk A[256:256]c
0200 _AppTaskStartStk::
0200 .blkb 256
0300 .dbsym e AppTaskStartStk _AppTaskStartStk A[256:256]c
.area func_lit
0000 9200 PL_AppTask2: .word `_AppTask2
0002 8400 PL_AppTask1: .word `_AppTask1
0004 3200 PL_AppTaskStart: .word `_AppTaskStart
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -