📄 user.s
字号:
.dbline 160
.dbline 161
ldi R16,2
xcall _LED_Toggle
.dbline 162
ldi R16,10
ldi R17,0
xcall _OSTimeDly
.dbline 163
L9:
.dbline 160
xjmp L8
X1:
.dbline -2
.dbline 164
; while (TRUE) {
; LED_Toggle(2);
; OSTimeDly(OS_TICKS_PER_SEC / 5);
; }
; }
L7:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r p_arg 20 pV
.dbend
.dbfunc s AppTask2 _AppTask2 fV
; p_arg -> R20,R21
.even
_AppTask2:
xcall push_gset1
movw R20,R16
.dbline -1
.dbline 173
;
; /*
; *********************************************************************************************************
; * TASK #2
; *********************************************************************************************************
; */
;
; static void AppTask2(void *p_arg)
; {
.dbline 174
; p_arg = p_arg;
xjmp L13
L12:
.dbline 175
.dbline 176
ldi R16,3
xcall _LED_Toggle
.dbline 177
ldi R16,25
ldi R17,0
xcall _OSTimeDly
.dbline 178
L13:
.dbline 175
xjmp L12
X2:
.dbline -2
.dbline 179
; while (TRUE) {
; LED_Toggle(3);
; OSTimeDly(OS_TICKS_PER_SEC / 2);
; }
; }
L11:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r p_arg 20 pV
.dbend
.dbfunc s AppIOInit _AppIOInit fV
.even
_AppIOInit:
.dbline -1
.dbline 188
;
; /*
; *********************************************************************************************************
; * SETUP THE I/Os
; *********************************************************************************************************
; */
;
; static void AppIOInit (void)
; {
.dbline 189
; DDRA = 0xFF; /* All PORTD pins are outputs */
ldi R24,255
out 0x1a,R24
.dbline 190
; PORTA = 0x00;
clr R2
out 0x1b,R2
.dbline 191
; DDRB = 0xFF; /* All PORTD pins are outputs */
out 0x17,R24
.dbline 192
; PORTB = 0x07;
ldi R24,7
out 0x18,R24
.dbline 193
; DDRC = 0xFF; /* All PORTD pins are outputs */
ldi R24,255
out 0x14,R24
.dbline 194
; PORTC = 0x00;
out 0x15,R2
.dbline 195
; DDRD = 0xFb; /* All PORTD pins are outputs */
ldi R24,251
out 0x11,R24
.dbline 196
; PORTD = 0x0d;
ldi R24,13
out 0x12,R24
.dbline 197
; DDRE = 0xFa; /* All PORTD pins are outputs */
ldi R24,250
out 0x2,R24
.dbline 198
; PORTE = 0x77;
ldi R24,119
out 0x3,R24
.dbline 199
; DDRF = 0xFF; /* All PORTD pins are outputs */
ldi R24,255
sts 97,R24
.dbline 200
; PORTF = 0x0f;
ldi R24,15
sts 98,R24
.dbline 201
; DDRG = 0xFF; /* All PORTD pins are outputs */
ldi R24,255
sts 100,R24
.dbline 202
; PORTG = 0xFF;
sts 101,R24
.dbline -2
.dbline 203
; }
L15:
.dbline 0 ; func end
ret
.dbend
.dbfunc e OSTickISR_Init _OSTickISR_Init fV
.even
_OSTickISR_Init::
.dbline -1
.dbline 212
;
; /*
; *********************************************************************************************************
; * SETUP THE TICK RATE
; *********************************************************************************************************
; */
;
; void OSTickISR_Init (void)
; {
.dbline 213
; TCCR0 = 0x07; /* Set TIMER0 prescaler to CLK/1024 */
ldi R24,7
out 0x33,R24
.dbline 214
; TIMSK = 0x01; /* Enable TIMER0 overflow interrupt */
ldi R24,1
out 0x37,R24
.dbline 215
; OCR0 = 0x48; /* Enable TIMER0 overflow interrupt */
ldi R24,72
out 0x31,R24
.dbline -2
.dbline 216
; }
L16:
.dbline 0 ; func end
ret
.dbend
.dbfunc e OSTickISR_Handler _OSTickISR_Handler fV
.even
_OSTickISR_Handler::
.dbline -1
.dbline 226
;
;
; /*
; *********************************************************************************************************
; * SETUP THE TICK RATE
; *********************************************************************************************************
; */
;
; void OSTickISR_Handler (void)
; {
.dbline 227
; TCNT0 = 256 - (CPU_CLK_FREQ / OS_TICKS_PER_SEC / 1024);
ldi R24,112
out 0x32,R24
.dbline 228
; OSTimeTick();
.dbline -2
.dbline 229
; }
L17:
.dbline 0 ; func end
xjmp _OSTimeTick
.dbend
.dbfunc s LED_Toggle _LED_Toggle fV
; cpu_sr -> R20
; led -> R22
.even
_LED_Toggle:
xcall push_gset2
mov R22,R16
.dbline -1
.dbline 238
;
; /*
; *********************************************************************************************************
; * TOGGLE LED
; *********************************************************************************************************
; */
;
; static void LED_Toggle (INT8U led)
; {
.dbline 244
; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
; OS_CPU_SR cpu_sr;
; #endif
;
;
; OS_ENTER_CRITICAL();
xcall _OS_CPU_SR_Save
mov R20,R16
.dbline 245
clr R23
cpi R22,1
ldi R30,0
cpc R23,R30
breq L22
cpi R22,2
ldi R30,0
cpc R23,R30
breq L23
cpi R22,3
ldi R30,0
cpc R23,R30
breq L24
cpi R22,4
ldi R30,0
cpc R23,R30
breq L25
xjmp L19
X3:
.dbline 245
; switch (led) {
L22:
.dbline 247
; case 1:
; PORTF ^= 0x00;
lds R2,98
sts 98,R2
.dbline 248
; break;
xjmp L20
L23:
.dbline 251
;
; case 2:
; PORTF ^= 0x00;
lds R2,98
sts 98,R2
.dbline 252
; break;
xjmp L20
L24:
.dbline 255
;
; case 3:
; PORTF ^= 0x00;
lds R2,98
sts 98,R2
.dbline 256
; break;
xjmp L20
L25:
.dbline 259
;
; case 4:
; PORTF ^= 0x00;
lds R2,98
sts 98,R2
.dbline 260
; break;
L19:
L20:
.dbline 262
; }
; OS_EXIT_CRITICAL();
mov R16,R20
xcall _OS_CPU_SR_Restore
.dbline -2
.dbline 263
; }
L18:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r cpu_sr 20 c
.dbsym r led 22 c
.dbend
.area bss(ram, con, rel)
.dbfile C:\UCOS-II_AVR_ICC\RTOSIC~1\source\User.c
_yyhcnt01:
.blkb 2
.dbsym s yyhcnt01 _yyhcnt01 i
_AppTask2Stk::
.blkb 256
.dbsym e AppTask2Stk _AppTask2Stk A[256:256]c
_AppTask1Stk::
.blkb 256
.dbsym e AppTask1Stk _AppTask1Stk A[256:256]c
_AppTaskStartStk::
.blkb 256
.dbsym e AppTaskStartStk _AppTaskStartStk A[256:256]c
.area func_lit
PL_AppTask2: .word `_AppTask2
PL_AppTask1: .word `_AppTask1
PL_AppTaskStart: .word `_AppTaskStart
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -