📄 test_func.lis
字号:
.module test_func.c
.area text(rom, con, rel)
0000 .dbfile G:\编程2002-10-15-HOME\做过的项目\2002-10-22\home-c\software\ucos-ii-at90S-icc-avr\ucos-ii-source\test_func.c
0000 .dbfunc e myOSTimeDly _myOSTimeDly fV
0000 ; p -> R22,R23
0000 ; ticks -> R20,R21
.even
0000 _myOSTimeDly::
0000 00D0 rcall push_gset2
0002 402F mov R20,R16
0004 512F mov R21,R17
0006 .dbline -1
0006 .dbline 4
0006 ; #include "includes.h"
0006 ;
0006 ; void myOSTimeDly (INT16U ticks)
0006 ; {
0006 .dbline 6
0006 ; /*OSTCBCur*/
0006 ; OS_TCB *p=OSTCBCur;
0006 60910000 lds R22,_OSTCBCur
000A 70910100 lds R23,_OSTCBCur+1
000E .dbline 7
000E ; if( ((OS_TCB*)0)==p)
000E 6030 cpi R22,0
0010 6707 cpc R22,R23
0012 11F4 brne L4
0014 X0:
0014 .dbline 8
0014 ; {
0014 .dbline 9
0014 ; ProgramError();
0014 9BD0 rcall _ProgramError
0016 .dbline 10
0016 ; return;
0016 03C0 rjmp L3
0018 L4:
0018 .dbline 12
0018 ; }
0018 ; OSTimeDly(ticks);
0018 042F mov R16,R20
001A 152F mov R17,R21
001C 00D0 rcall _OSTimeDly
001E .dbline -2
001E .dbline 13
001E ; }
001E L3:
001E 00D0 rcall pop_gset2
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbsym r p 22 pX
0022 .dbsym r ticks 20 i
0022 .dbend
0022 .dbfunc e Flash_Port _Flash_Port fV
0022 ; port_foot -> R22
0022 ; port_ -> R20
.even
0022 _Flash_Port::
0022 00D0 rcall push_gset2
0024 622F mov R22,R18
0026 402F mov R20,R16
0028 .dbline -1
0028 .dbline 18
0028 ;
0028 ; /* flash port*/
0028 ; void Flash_Port(unsigned char port_,
0028 ; unsigned char port_foot)
0028 ; {
0028 .dbline 19
0028 ; OS_ENTER_CRITICAL();
0028 0A93 st -y,r16
002A 0FB7 in r16,0x3f
002C F894 cli
002E 0F93 push r16
0030 0991 ld r16,y+
0032 .dbline 19
0032 .dbline 20
0032 ; if(PORT_TO_FLASH_B==port_)
0032 4423 tst R20
0034 21F4 brne L7
0036 .dbline 21
0036 ; {
0036 .dbline 22
0036 ; DDRB = 0xff;
0036 8FEF ldi R24,255
0038 87BB out 0x17,R24
003A .dbline 23
003A ; PORTB = port_foot;
003A 68BB out 0x18,R22
003C .dbline 24
003C ; }else
003C 03C0 rjmp L8
003E L7:
003E .dbline 25
003E ; {
003E .dbline 26
003E ; DDRC = 0xff;
003E 8FEF ldi R24,255
0040 84BB out 0x14,R24
0042 .dbline 27
0042 ; PORTC = port_foot;
0042 65BB out 0x15,R22
0044 .dbline 28
0044 ; }
0044 L8:
0044 .dbline 29
0044 ; OS_EXIT_CRITICAL();
0044 0A93 st -y,r16
0046 0F91 pop r16
0048 0FBF out 0x3F,r16
004A 0991 ld r16,y+
004C .dbline 29
004C .dbline 30
004C ; Delay(DELAY_COUNT);
004C 0AE0 ldi R16,10
004E 10E0 ldi R17,0
0050 21D0 rcall _Delay
0052 .dbline 32
0052 ;
0052 ; OS_ENTER_CRITICAL();
0052 0A93 st -y,r16
0054 0FB7 in r16,0x3f
0056 F894 cli
0058 0F93 push r16
005A 0991 ld r16,y+
005C .dbline 32
005C .dbline 33
005C ; if(PORT_TO_FLASH_B==port_)
005C 4423 tst R20
005E 21F4 brne L9
0060 .dbline 34
0060 ; {
0060 .dbline 35
0060 ; DDRB = 0xff;
0060 8FEF ldi R24,255
0062 87BB out 0x17,R24
0064 .dbline 36
0064 ; PORTB = 0xff;
0064 88BB out 0x18,R24
0066 .dbline 37
0066 ; }else
0066 03C0 rjmp L10
0068 L9:
0068 .dbline 38
0068 ; {
0068 .dbline 39
0068 ; DDRC = 0xff;
0068 8FEF ldi R24,255
006A 84BB out 0x14,R24
006C .dbline 40
006C ; PORTC = 0xff;
006C 85BB out 0x15,R24
006E .dbline 41
006E ; }
006E L10:
006E .dbline 42
006E ; OS_EXIT_CRITICAL();
006E 0A93 st -y,r16
0070 0F91 pop r16
0072 0FBF out 0x3F,r16
0074 0991 ld r16,y+
0076 .dbline 42
0076 .dbline 43
0076 ; Delay(DELAY_COUNT);
0076 0AE0 ldi R16,10
0078 10E0 ldi R17,0
007A 0CD0 rcall _Delay
007C .dbline -2
007C .dbline 44
007C ; }
007C L6:
007C 00D0 rcall pop_gset2
007E .dbline 0 ; func end
007E 0895 ret
0080 .dbsym r port_foot 22 c
0080 .dbsym r port_ 20 c
0080 .dbend
0080 .dbfunc e test_OSTickISR0 _test_OSTickISR0 fV
0080 ; b1 -> <dead>
.even
0080 _test_OSTickISR0::
0080 .dbline -1
0080 .dbline 48
0080 ;
0080 ; /* test timer isr,flash PORT C 2*/
0080 ; void test_OSTickISR0()
0080 ; {
0080 .dbline 51
0080 ; unsigned char b1;
0080 ; /*reset timer*/
0080 ; TCNT0 =256-(7372800/50/1024); /* ; Reload timer to overflow at a rate of 50Hz*/
0080 80E7 ldi R24,112
0082 82BF out 0x32,R24
0084 .dbline 53
0084 ; /*flash port A.2*/
0084 ; FLASH_PORT_B2();
0084 2BEF ldi R18,251
0086 0027 clr R16
0088 CCDF rcall _Flash_Port
008A .dbline 55
008A ; /*enable global interrupt*/
008A ; OS_EXIT_CRITICAL();
008A 0A93 st -y,r16
008C 0F91 pop r16
008E 0FBF out 0x3F,r16
0090 0991 ld r16,y+
0092 .dbline 55
0092 .dbline -2
0092 .dbline 56
0092 ; }
0092 L11:
0092 .dbline 0 ; func end
0092 0895 ret
0094 .dbsym l b1 1 c
0094 .dbend
0094 .dbfunc e Delay _Delay fV
0094 ; i -> R20
0094 ; j -> R10
0094 ; k -> R12
0094 ; loop -> R22,R23
.even
0094 _Delay::
0094 00D0 rcall push_gset4
0096 602F mov R22,R16
0098 712F mov R23,R17
009A .dbline -1
009A .dbline 59
009A ;
009A ; void Delay(int loop)
009A ; {
009A .dbline 63
009A ; unsigned char i,j,k;
009A ; /* myOSTimeDly(1);return;*/
009A ; /* myOSTimeDly(OS_TICKS_PER_SEC); return;*/
009A ; for(i=1;i<loop;i++)
009A 41E0 ldi R20,1
009C 10C0 rjmp L16
009E L13:
009E .dbline 64
009E ; {
009E .dbline 65
009E ; myOSTimeDly(1);
009E 01E0 ldi R16,1
00A0 10E0 ldi R17,0
00A2 AEDF rcall _myOSTimeDly
00A4 .dbline 66
00A4 ; for(j=1;j;j++)
00A4 AA24 clr R10
00A6 A394 inc R10
00A8 07C0 rjmp L20
00AA L17:
00AA .dbline 67
00AA ; {
00AA .dbline 68
00AA ; for(k=1;k;k++)
00AA CC24 clr R12
00AC C394 inc R12
00AE 01C0 rjmp L24
00B0 L21:
00B0 .dbline 69
00B0 L22:
00B0 .dbline 68
00B0 C394 inc R12
00B2 L24:
00B2 .dbline 68
00B2 CC20 tst R12
00B4 E9F7 brne L21
00B6 .dbline 70
00B6 L18:
00B6 .dbline 66
00B6 A394 inc R10
00B8 L20:
00B8 .dbline 66
00B8 AA20 tst R10
00BA B9F7 brne L17
00BC .dbline 71
00BC L14:
00BC .dbline 63
00BC 4395 inc R20
00BE L16:
00BE .dbline 63
00BE 242E mov R2,R20
00C0 3324 clr R3
00C2 2616 cp R2,R22
00C4 3706 cpc R3,R23
00C6 5CF3 brlt L13
00C8 .dbline -2
00C8 .dbline 72
00C8 ; ;
00C8 ; }
00C8 ; }
00C8 ; }
00C8 L12:
00C8 00D0 rcall pop_gset4
00CA .dbline 0 ; func end
00CA 0895 ret
00CC .dbsym r i 20 c
00CC .dbsym r j 10 c
00CC .dbsym r k 12 c
00CC .dbsym r loop 22 I
00CC .dbend
00CC .dbfunc e Delay_Real _Delay_Real fV
00CC ; i -> R20
00CC ; j -> R22
00CC ; k -> R10
00CC ; loop -> R16,R17
.even
00CC _Delay_Real::
00CC 00D0 rcall push_gset3
00CE .dbline -1
00CE .dbline 75
00CE ;
00CE ; void Delay_Real(int loop)
00CE ; {
00CE .dbline 77
00CE ; unsigned char i,j,k;
00CE ; for(i=1;i<loop;i++)
00CE 41E0 ldi R20,1
00D0 0CC0 rjmp L29
00D2 L26:
00D2 .dbline 78
00D2 ; {
00D2 .dbline 79
00D2 ; for(j=1;j;j++)
00D2 61E0 ldi R22,1
00D4 07C0 rjmp L33
00D6 L30:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -