⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_funcs.lis

📁 ucos-ii-at90S-icc-avr
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00AA 712F              mov R23,R17
 00AC 2397              sbiw R28,3
 00AE                   .dbline -1
 00AE                   .dbline 83
 00AE           ; #endif
 00AE           ; /* PORTC , send 'T1'*/
 00AE           ; void task1(void *pdata)
 00AE           ; {
 00AE                   .dbline 84
 00AE           ;   INT8U i=0,err;
 00AE 4427              clr R20
 00B0 2FC0              rjmp L34
 00B2           L33:
 00B2                   .dbline 86
 00B2           ;   while(1)
 00B2           ;   {
 00B2                   .dbline 87
 00B2           ;      i++;
 00B2 4395              inc R20
 00B4                   .dbline 89
 00B4           ; #if DEBUG_IN_AVR_STUDIO==0
 00B4           ;      task_Delay();
 00B4 AEDF              rcall _task_Delay
 00B6                   .dbline 91
 00B6           ; #endif
 00B6           ;      OSTimeDly(11);
 00B6 0BE0              ldi R16,11
 00B8 10E0              ldi R17,0
 00BA 00D0              rcall _OSTimeDly
 00BC                   .dbline 93
 00BC           ; #if OS_SEM_EN
 00BC           ;      err=OS_NO_ERR;
 00BC 2224              clr R2
 00BE 2A82              std y+2,R2
 00C0                   .dbline 94
 00C0           ;      if(i>8)
 00C0 88E0              ldi R24,8
 00C2 8417              cp R24,R20
 00C4 08F4              brsh L36
 00C6                   .dbline 95
 00C6           ;      {
 00C6                   .dbline 96
 00C6           ;        i=0;
 00C6 4427              clr R20
 00C8                   .dbline 106
 00C8           ; #if LCD_EN
 00C8           ;        //clear lcd
 00C8           ;        OSSemPend(&uart_sem,32700,&err);
 00C8           ;        if(OS_NO_ERR==err)
 00C8           ;        {
 00C8           ;          lcd_clear();                 
 00C8           ;          OSSemPost(&uart_sem);
 00C8           ;        }
 00C8           ; #endif//LCD_EN
 00C8           ;      }//end of clear lcd
 00C8           L36:
 00C8                   .dbline 108
 00C8           ;      
 00C8           ;      if((i>=0)&&(i<=9))
 00C8 4030              cpi R20,0
 00CA 10F1              brlo L38
 00CC 89E0              ldi R24,9
 00CE 8417              cp R24,R20
 00D0 F8F0              brlo L38
 00D2                   .dbline 109
 00D2           ;      {
 00D2                   .dbline 110
 00D2           ;        OSSemPend(&uart_sem,32700,&err);
 00D2 8C2F              mov R24,R28
 00D4 9D2F              mov R25,R29
 00D6 0296              adiw R24,2
 00D8 8883              std y+0,R24
 00DA 9983              std y+1,R25
 00DC 2CEB              ldi R18,32700
 00DE 3FE7              ldi R19,127
 00E0 00E0              ldi R16,<_uart_sem
 00E2 10E0              ldi R17,>_uart_sem
 00E4 00D0              rcall _OSSemPend
 00E6                   .dbline 111
 00E6           ;        if(OS_NO_ERR==err)
 00E6 2A80              ldd R2,y+2
 00E8 2220              tst R2
 00EA 91F4              brne L40
 00EC                   .dbline 112
 00EC           ;        {
 00EC                   .dbline 114
 00EC           ; #if DEBUG_IN_AVR_STUDIO==0
 00EC           ;          my_putc('T');my_putc((INT8U)(i+'0'));
 00EC 04E5              ldi R16,84
 00EE D5DF              rcall _my_putc
 00F0                   .dbline 114
 00F0 042F              mov R16,R20
 00F2 1127              clr R17
 00F4 005D              subi R16,208  ; offset = 48
 00F6 1F4F              sbci R17,255
 00F8 D0DF              rcall _my_putc
 00FA                   .dbline 116
 00FA           ;                //read answer
 00FA           ;                getchar();//should be 'R'
 00FA 00D0              rcall _getchar
 00FC                   .dbline 117
 00FC           ;          DDRC=0xff;
 00FC 8FEF              ldi R24,255
 00FE 84BB              out 0x14,R24
 0100                   .dbline 118
 0100           ;          PORTC=getchar()-'0';//should between '0' and '9'              
 0100 00D0              rcall _getchar
 0102 802F              mov R24,R16
 0104 912F              mov R25,R17
 0106 C097              sbiw R24,48
 0108 85BB              out 0x15,R24
 010A                   .dbline 120
 010A           ; #endif
 010A           ;          OSSemPost(&uart_sem);
 010A 00E0              ldi R16,<_uart_sem
 010C 10E0              ldi R17,>_uart_sem
 010E 00D0              rcall _OSSemPost
 0110                   .dbline 121
 0110           ;        }
 0110           L40:
 0110                   .dbline 122
 0110           ;      }//end i>=0 and i<=9
 0110           L38:
 0110                   .dbline 124
 0110           L34:
 0110                   .dbline 85
 0110 D0CF              rjmp L33
 0112           X1:
 0112                   .dbline -2
 0112                   .dbline 125
 0112           ; #endif
 0112           ;   }//while(1)
 0112           ; }
 0112           L32:
 0112 2396              adiw R28,3
 0114 00D0              rcall pop_gset2
 0116                   .dbline 0 ; func end
 0116 0895              ret
 0118                   .dbsym l err 2 c
 0118                   .dbsym r i 20 c
 0118                   .dbsym r pdata 22 pV
 0118                   .dbend
 0118                   .dbfunc e task2 _task2 fV
 0118           ;              k -> <dead>
 0118           ;              j -> <dead>
 0118           ;            err -> y+2
 0118           ;              i -> R20
 0118           ;          pdata -> R22,R23
                        .even
 0118           _task2::
 0118 00D0              rcall push_gset2
 011A 602F              mov R22,R16
 011C 712F              mov R23,R17
 011E 2397              sbiw R28,3
 0120                   .dbline -1
 0120                   .dbline 129
 0120           ; 
 0120           ; /* PORTA , send 'Q1'*/
 0120           ; void task2(void *pdata)
 0120           ; {
 0120                   .dbline 130
 0120           ;   INT8U i=0,j,k,err;
 0120 4427              clr R20
 0122 2FC0              rjmp L44
 0124           L43:
 0124                   .dbline 132
 0124           ;   while(1)
 0124           ;   {
 0124                   .dbline 133
 0124           ;      i++;
 0124 4395              inc R20
 0126                   .dbline 135
 0126           ; #if DEBUG_IN_AVR_STUDIO==0
 0126           ;      task_Delay();
 0126 75DF              rcall _task_Delay
 0128                   .dbline 137
 0128           ; #endif
 0128           ;      OSTimeDly(3);
 0128 03E0              ldi R16,3
 012A 10E0              ldi R17,0
 012C 00D0              rcall _OSTimeDly
 012E                   .dbline 139
 012E           ; #if OS_SEM_EN
 012E           ;      err=OS_NO_ERR;
 012E 2224              clr R2
 0130 2A82              std y+2,R2
 0132                   .dbline 140
 0132           ;      if(i>9)
 0132 89E0              ldi R24,9
 0134 8417              cp R24,R20
 0136 08F4              brsh L46
 0138                   .dbline 141
 0138           ;      {//clear lcd and reset i
 0138                   .dbline 142
 0138           ;        i=1;
 0138 41E0              ldi R20,1
 013A                   .dbline 151
 013A           ; #if LCD_EN
 013A           ;        OSSemPend(&uart_sem,32700,&err);
 013A           ;        if(OS_NO_ERR==err)
 013A           ;        {
 013A           ;          lcd_clear();                 
 013A           ;          OSSemPost(&uart_sem);
 013A           ;        }
 013A           ; #endif//LCD_EN
 013A           ;      }//end i>9       
 013A           L46:
 013A                   .dbline 152
 013A           ;      if((i>=0)&&(i<=9))
 013A 4030              cpi R20,0
 013C 10F1              brlo L48
 013E 89E0              ldi R24,9
 0140 8417              cp R24,R20
 0142 F8F0              brlo L48
 0144                   .dbline 153
 0144           ;      {
 0144                   .dbline 154
 0144           ;        OSSemPend(&uart_sem,32700,&err);
 0144 8C2F              mov R24,R28
 0146 9D2F              mov R25,R29
 0148 0296              adiw R24,2
 014A 8883              std y+0,R24
 014C 9983              std y+1,R25
 014E 2CEB              ldi R18,32700
 0150 3FE7              ldi R19,127
 0152 00E0              ldi R16,<_uart_sem
 0154 10E0              ldi R17,>_uart_sem
 0156 00D0              rcall _OSSemPend
 0158                   .dbline 155
 0158           ;        if(OS_NO_ERR==err)
 0158 2A80              ldd R2,y+2
 015A 2220              tst R2
 015C 91F4              brne L50
 015E                   .dbline 156
 015E           ;        {
 015E                   .dbline 158
 015E           ; #if DEBUG_IN_AVR_STUDIO==0
 015E           ;          my_putc('Q'); my_putc((INT8U)(i+'0'));
 015E 01E5              ldi R16,81
 0160 9CDF              rcall _my_putc
 0162                   .dbline 158
 0162 042F              mov R16,R20
 0164 1127              clr R17
 0166 005D              subi R16,208  ; offset = 48
 0168 1F4F              sbci R17,255
 016A 97DF              rcall _my_putc
 016C                   .dbline 160
 016C           ;          //read answer 
 016C           ;          getchar();//should be 'A'
 016C 00D0              rcall _getchar
 016E                   .dbline 161
 016E           ;                DDRA=0xff;
 016E 8FEF              ldi R24,255
 0170 8ABB              out 0x1a,R24
 0172                   .dbline 162
 0172           ;          PORTA=getchar()-'0';//should be '0' to '9'
 0172 00D0              rcall _getchar
 0174 802F              mov R24,R16
 0176 912F              mov R25,R17
 0178 C097              sbiw R24,48
 017A 8BBB              out 0x1b,R24
 017C                   .dbline 164
 017C           ; #endif
 017C           ;          OSSemPost(&uart_sem);
 017C 00E0              ldi R16,<_uart_sem
 017E 10E0              ldi R17,>_uart_sem
 0180 00D0              rcall _OSSemPost
 0182                   .dbline 165
 0182           ;        }//end of send
 0182           L50:
 0182                   .dbline 166
 0182           ;      }//end i>=0 and i<=9
 0182           L48:
 0182                   .dbline 168
 0182           L44:
 0182                   .dbline 131
 0182 D0CF              rjmp L43
 0184           X2:
 0184                   .dbline -2
 0184                   .dbline 169
 0184           ; #endif
 0184           ;   }//end while(1)
 0184           ; }
 0184           L42:
 0184 2396              adiw R28,3
 0186 00D0              rcall pop_gset2
 0188                   .dbline 0 ; func end
 0188 0895              ret
 018A                   .dbsym l k 3 c
 018A                   .dbsym l j 3 c
 018A                   .dbsym l err 2 c
 018A                   .dbsym r i 20 c
 018A                   .dbsym r pdata 22 pV
 018A                   .dbend
 018A                   .dbfunc e task3 _task3 fV
 018A           ;          pdata -> R16,R17
                        .even
 018A           _task3::
 018A                   .dbline -1
 018A                   .dbline 172
 018A           ; 
 018A           ; void task3(void *pdata)
 018A           ; {
 018A 01C0              rjmp L54
 018C           L53:
 018C                   .dbline 174
 018C                   .dbline 175
 018C 0000              nop
 018E                   .dbline 176
 018E           L54:
 018E                   .dbline 173
 018E FECF              rjmp L53
 0190           X3:
 0190                   .dbline -2
 0190                   .dbline 177
 0190           ;   while(1)
 0190           ;   {
 0190           ;     asm("nop");
 0190           ;   }
 0190           ; }
 0190           L52:
 0190                   .dbline 0 ; func end
 0190 0895              ret
 0192                   .dbsym r pdata 16 pV
 0192                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -