📄 main.lst
字号:
50 //以下为ADC的初始化设定
51 ADMUX=0;
\ 00000020 E000 LDI R16, 0
\ 00000022 B907 OUT 0x07, R16
52 ADCSRA=0x8E; //使能ADC,ADC预分频因子为64,使能ADC中断
\ 00000024 E80E LDI R16, 142
\ 00000026 B906 OUT 0x06, R16
53 }
\ 00000028 9508 RET
\ 0000002A REQUIRE _A_PORTA
\ 0000002A REQUIRE _A_DDRA
\ 0000002A REQUIRE _A_PORTB
\ 0000002A REQUIRE _A_DDRB
\ 0000002A REQUIRE _A_PORTC
\ 0000002A REQUIRE _A_DDRC
\ 0000002A REQUIRE _A_PORTD
\ 0000002A REQUIRE _A_DDRD
\ 0000002A REQUIRE _A_ADMUX
\ 0000002A REQUIRE _A_ADCSRA
54
\ In segment CODE, align 2, keep-with-next
55 void Task1(void * data)
\ Task1:
56 {
57 data=data;
58 //WDTCR=1; //enable watchdog and set the time in 32ms
59 //以下为定时器0的初始化设定,并启动定时器0
60 TCCR0=0x05; //定时器0设定为普通模式,输入时钟1024分频,正常的端口操作,
\ 00000000 E025 LDI R18, 5
\ 00000002 BF23 OUT 0x33, R18
61 //不与OC0相连接,定时器0的周期为32.768ms
62 TIMSK_TOIE0=1; //使能定时器0的溢出中断
\ 00000004 B729 IN R18, 0x39
\ 00000006 6021 ORI R18, 0x01
\ 00000008 BF29 OUT 0x39, R18
63 while(1)
64 {
65 OSTimeDly(100);
\ ??Task1_0:
\ 0000000A E604 LDI R16, 100
\ 0000000C E010 LDI R17, 0
\ 0000000E ........ CALL OSTimeDly
66 ADCSRA_ADSC=1;
\ 00000012 9A36 SBI 0x06, 0x06
\ 00000014 CFFA RJMP ??Task1_0
\ 00000016 REQUIRE _A_TIMSK
\ 00000016 REQUIRE _A_TCCR0
\ 00000016 REQUIRE _A_ADCSRA
67 }
68 }
69
\ In segment CODE, align 2, keep-with-next
70 void Task2(void * data)
\ Task2:
\ ??Task2_0:
71 {
72 data=data;
73 while(1)
74 {
75 OSTimeDly(240);
\ 00000000 EF00 LDI R16, 240
\ 00000002 E010 LDI R17, 0
\ 00000004 ........ CALL OSTimeDly
\ 00000008 CFFB RJMP ??Task2_0
76 }
77 }
\ In segment CODE, align 2, keep-with-next
78 void Task3(void * data)
\ Task3:
\ ??Task3_0:
79 {
80 data=data;
81 while(1)
82 {
83 OSTimeDly(333);
\ 00000000 E40D LDI R16, 77
\ 00000002 E011 LDI R17, 1
\ 00000004 ........ CALL OSTimeDly
\ 00000008 CFFB RJMP ??Task3_0
84 }
85 }
\ In segment CODE, align 2, keep-with-next
86 void Task4(void * data)
\ Task4:
\ ??Task4_0:
87 {
88 data=data;
89 while(1)
90 {
91 OSTimeDly(473);
\ 00000000 ED09 LDI R16, 217
\ 00000002 E011 LDI R17, 1
\ 00000004 ........ CALL OSTimeDly
\ 00000008 CFFB RJMP ??Task4_0
92 }
93 }
\ In segment CODE, align 2, keep-with-next, root
94 __C_task __root void timer0_interrupt_routine(void)
\ timer0_interrupt_routine:
95 {
96 IntEnter();
\ 00000000 ........ CALL IntEnter
97 __enable_interrupt();
\ 00000004 9478 SEI
98 OSTimeTick();
\ 00000006 ........ CALL OSTimeTick
99 __disable_interrupt();
\ 0000000A 94F8 CLI
100 OSIntExit();
\ 0000000C ........ CALL OSIntExit
101 IntExit();
\ 00000010 ........ CALL IntExit
102 }
\ 00000014 9508 RET
103
\ In segment CODE, align 2, keep-with-next, root
104 __C_task __root void ADC_interrupt_routine(void)
\ ADC_interrupt_routine:
105 {
106 IntEnter();
\ 00000000 ........ CALL IntEnter
107 __enable_interrupt();
\ 00000004 9478 SEI
108 //DoSomething
109 __disable_interrupt();
\ 00000006 94F8 CLI
110 OSIntExit();
\ 00000008 ........ CALL OSIntExit
111 IntExit();
\ 0000000C ........ CALL IntExit
112 }
\ 00000010 9508 RET
Maximum stack usage in bytes:
Function CSTACK RSTACK
-------- ------ ------
ADC_interrupt_routine 0 2
-> IntEnter 0 2
-> OSIntExit 0 2
-> IntExit 0 2
AvrInit 0 2
Task1 0 2
-> OSTimeDly 0 2
Task2 0 2
-> OSTimeDly 0 2
Task3 0 2
-> OSTimeDly 0 2
Task4 0 2
-> OSTimeDly 0 2
main 0 2
-> AvrInit 0 2
-> OSInit 0 2
-> OSTaskCreate 0 2
-> OSTaskCreate 0 2
-> OSTaskCreate 0 2
-> OSTaskCreate 0 2
-> OSStart 0 2
timer0_interrupt_routine 0 2
-> IntEnter 0 2
-> OSTimeTick 0 2
-> OSIntExit 0 2
-> IntExit 0 2
Segment part sizes:
Function/Label Bytes
-------------- -----
_A_TIMSK 1
_A_TCCR0 1
_A_PORTA 1
_A_DDRA 1
_A_PORTB 1
_A_DDRB 1
_A_PORTC 1
_A_DDRC 1
_A_PORTD 1
_A_DDRD 1
_A_ADMUX 1
_A_ADCSRA 1
OSICB 6
Task1Stk 100
Task2Stk 100
Task3Stk 100
Task4Stk 100
main 84
AvrInit 42
Task1 22
Task2 10
Task3 10
Task4 10
timer0_interrupt_routine 22
ADC_interrupt_routine 18
Others 6
12 bytes in segment ABSOLUTE
218 bytes in segment CODE
6 bytes in segment INITTAB
406 bytes in segment NEAR_Z
218 bytes of CODE memory (+ 6 bytes shared)
406 bytes of DATA memory (+ 12 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -