?? test_funcs.lis
字號:
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 + -