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

📄 test_funcs.s

📁 ucos-ii-at90S-icc-avr
💻 S
字号:
	.module test_funcs.c
	.area text(rom, con, rel)
	.dbfile G:\编程2002-10-15-HOME\做过的项目\2002-10-22\home-c\software\ucos-ii-at90S-icc-avr\os-task-sem\test_funcs.c
	.dbfunc e TC2_Init _TC2_Init fV
	.even
_TC2_Init::
	.dbline -1
	.dbline 7
; #include "includes.h"
; 
; //*****************************************************************************
; //			TickISR
; //*****************************************************************************
; // Init Timer/Counter2 fuer Takterzeugung
; void TC2_Init (void){	
	.dbline 8
;     TCCR0       = 0x05;                                 /* Set TIMER0 prescaler to CLK/1024                 */
	ldi R24,5
	out 0x33,R24
	.dbline 9
;     TIMSK       = 0x02;                                 /* Enable TIMER0 overflow interrupt                 */
	ldi R24,2
	out 0x39,R24
	.dbline 10
;     UBRR=25;//192,00
	ldi R24,25
	out 0x9,R24
	.dbline 11
;     UCR=0x18;//RXEN TXEN    
	ldi R24,24
	out 0xa,R24
	.dbline -2
	.dbline 12
; }
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e task_Delay _task_Delay fV
;              j -> <dead>
;              i -> R20
;              k -> R22
	.even
_task_Delay::
	rcall push_gset2
	.dbline -1
	.dbline 15
; 
; void task_Delay(void)
; {
	.dbline 17
;   unsigned char i,j,k;
;   for(i=1;i<4;i++)
	ldi R20,1
	rjmp L7
L4:
	.dbline 19
; //    for(j=1;j;j++)
; 	{
	.dbline 20
; 	  OSTimeDly(30);
	ldi R16,30
	ldi R17,0
	rcall _OSTimeDly
	.dbline 21
; 	  for(k=1;k;k++)
	ldi R22,1
	rjmp L11
L8:
	.dbline 22
L9:
	.dbline 21
	inc R22
L11:
	.dbline 21
	tst R22
	brne L8
	.dbline 23
L5:
	.dbline 17
	inc R20
L7:
	.dbline 17
	cpi R20,4
	brlo L4
	.dbline -2
	.dbline 24
; 	  ;
; 	}
; }
L3:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l j 1 c
	.dbsym r i 20 c
	.dbsym r k 22 c
	.dbend
	.dbfunc e Delay _Delay fV
;              i -> R16
;              j -> R18
;              k -> R20
	.even
_Delay::
	rcall push_gset1
	.dbline -1
	.dbline 28
; 
; #if PROGRAM_START_FLASH_EN
; void Delay(void)
; {
	.dbline 30
;   unsigned char i,j,k;
;   for(i=1;i<10;i++)
	ldi R16,1
	rjmp L16
L13:
	.dbline 31
;     for(j=1;j;j++)
	ldi R18,1
	rjmp L20
L17:
	.dbline 32
; 	{
	.dbline 33
; 	  for(k=1;k;k++)
	ldi R20,1
	rjmp L24
L21:
	.dbline 34
L22:
	.dbline 33
	inc R20
L24:
	.dbline 33
	tst R20
	brne L21
	.dbline 35
L18:
	.dbline 31
	inc R18
L20:
	.dbline 31
	tst R18
	brne L17
L14:
	.dbline 30
	inc R16
L16:
	.dbline 30
	cpi R16,10
	brlo L13
	.dbline -2
	.dbline 36
; 	  ;
; 	}
; }
L12:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbsym r j 18 c
	.dbsym r k 20 c
	.dbend
	.dbfunc e ProgramStart_Flash _ProgramStart_Flash fV
;              v -> R20
	.even
_ProgramStart_Flash::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 39
; 
; void ProgramStart_Flash(INT8U v)
; {
	.dbline 40
;   DDRB=0xff;
	ldi R24,255
	out 0x17,R24
	.dbline 41
;   PORTB=v;  
	out 0x18,R20
	.dbline 42
;   DDRD=0xff;
	out 0x11,R24
	.dbline 43
;   PORTD=v;  
	out 0x12,R20
	.dbline 47
; //  DDRA=0xff;  PORTA=v;  
; //  DDRC=0xff;
; //  PORTC=v;  
;   Delay();
	rcall _Delay
	.dbline -2
	.dbline 48
; }
L25:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r v 20 c
	.dbend
	.dbfunc e ProgramStart _ProgramStart fV
	.even
_ProgramStart::
	.dbline -1
	.dbline 51
; 
; void ProgramStart(void)
; {
	.dbline 52
;   DDRA=0xff;  PORTA=0xff;  
	ldi R24,255
	out 0x1a,R24
	.dbline 52
	out 0x1b,R24
	.dbline 53
;   DDRC=0xff;  PORTC=0xff;  
	out 0x14,R24
	.dbline 53
	out 0x15,R24
	.dbline 54
;   ProgramStart_Flash(0);
	clr R16
	rcall _ProgramStart_Flash
	.dbline 55
;   ProgramStart_Flash(0xff);
	ldi R16,255
	rcall _ProgramStart_Flash
	.dbline 56
;   ProgramStart_Flash(0);
	clr R16
	rcall _ProgramStart_Flash
	.dbline 57
;   ProgramStart_Flash(0xff);
	ldi R16,255
	rcall _ProgramStart_Flash
	.dbline 58
;   ProgramStart_Flash(0);
	clr R16
	rcall _ProgramStart_Flash
	.dbline 59
;   ProgramStart_Flash(0xff);
	ldi R16,255
	.dbline -2
	.dbline 60
; }
L26:
	.dbline 0 ; func end
	rjmp _ProgramStart_Flash
	.dbend
	.dbfunc e OSError _OSError fV
;              i -> R20
;            err -> R16
	.even
_OSError::
	rcall push_gset1
	.dbline -1
	.dbline 65
; #endif//PROGRAM_START_FLASH_EN
; 
; #if OS_STRICT
; void OSError(INT8U err)
; {
	.dbline 66
;   INT8U i=err;
	mov R20,R16
	rjmp L29
L28:
	.dbline 68
	mov R20,R16
L29:
	.dbline 67
	rjmp L28
X0:
	.dbline -2
	.dbline 69
;   while(1)
;     i=err;
; }
L27:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r err 16 c
	.dbend
	.dbfunc e my_putc _my_putc fV
;              c -> R20
	.even
_my_putc::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 74
; #endif
; 
; #if OS_SEM_EN
; void my_putc(INT8U c)
; {
	.dbline 78
; #if LCD_EN
; 	lcd_putc(c);
; #endif
; 	putchar(c);
	mov R16,R20
	rcall _putchar
	.dbline -2
	.dbline 79
; }
L31:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r c 20 c
	.dbend
	.dbfunc e task1 _task1 fV
;            err -> y+2
;              i -> R20
;          pdata -> R22,R23
	.even
_task1::
	rcall push_gset2
	mov R22,R16
	mov R23,R17
	sbiw R28,3
	.dbline -1
	.dbline 83
; #endif
; /* PORTC , send 'T1'*/
; void task1(void *pdata)
; {
	.dbline 84
;   INT8U i=0,err;
	clr R20
	rjmp L34
L33:
	.dbline 86
;   while(1)
;   {
	.dbline 87
;      i++;
	inc R20
	.dbline 89
; #if DEBUG_IN_AVR_STUDIO==0
;      task_Delay();
	rcall _task_Delay
	.dbline 91
; #endif
;      OSTimeDly(11);
	ldi R16,11
	ldi R17,0
	rcall _OSTimeDly
	.dbline 93
; #if OS_SEM_EN
;      err=OS_NO_ERR;
	clr R2
	std y+2,R2
	.dbline 94
;      if(i>8)
	ldi R24,8
	cp R24,R20
	brsh L36
	.dbline 95
;      {
	.dbline 96
;        i=0;
	clr R20
	.dbline 106
; #if LCD_EN
;        //clear lcd
;        OSSemPend(&uart_sem,32700,&err);
;        if(OS_NO_ERR==err)
;        {
;          lcd_clear();			
;          OSSemPost(&uart_sem);
;        }
; #endif//LCD_EN
;      }//end of clear lcd
L36:
	.dbline 108
;      
;      if((i>=0)&&(i<=9))
	cpi R20,0
	brlo L38
	ldi R24,9
	cp R24,R20
	brlo L38
	.dbline 109
;      {
	.dbline 110
;        OSSemPend(&uart_sem,32700,&err);
	mov R24,R28
	mov R25,R29
	adiw R24,2
	std y+0,R24
	std y+1,R25
	ldi R18,32700
	ldi R19,127
	ldi R16,<_uart_sem
	ldi R17,>_uart_sem
	rcall _OSSemPend
	.dbline 111
;        if(OS_NO_ERR==err)
	ldd R2,y+2
	tst R2
	brne L40
	.dbline 112
;        {
	.dbline 114
; #if DEBUG_IN_AVR_STUDIO==0
;          my_putc('T');my_putc((INT8U)(i+'0'));
	ldi R16,84
	rcall _my_putc
	.dbline 114
	mov R16,R20
	clr R17
	subi R16,208  ; offset = 48
	sbci R17,255
	rcall _my_putc
	.dbline 116
; 		 //read answer
; 		 getchar();//should be 'R'
	rcall _getchar
	.dbline 117
;          DDRC=0xff;
	ldi R24,255
	out 0x14,R24
	.dbline 118
;          PORTC=getchar()-'0';//should between '0' and '9'		 
	rcall _getchar
	mov R24,R16
	mov R25,R17
	sbiw R24,48
	out 0x15,R24
	.dbline 120
; #endif
;          OSSemPost(&uart_sem);
	ldi R16,<_uart_sem
	ldi R17,>_uart_sem
	rcall _OSSemPost
	.dbline 121
;        }
L40:
	.dbline 122
;      }//end i>=0 and i<=9
L38:
	.dbline 124
L34:
	.dbline 85
	rjmp L33
X1:
	.dbline -2
	.dbline 125
; #endif
;   }//while(1)
; }
L32:
	adiw R28,3
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l err 2 c
	.dbsym r i 20 c
	.dbsym r pdata 22 pV
	.dbend
	.dbfunc e task2 _task2 fV
;              k -> <dead>
;              j -> <dead>
;            err -> y+2
;              i -> R20
;          pdata -> R22,R23
	.even
_task2::
	rcall push_gset2
	mov R22,R16
	mov R23,R17
	sbiw R28,3
	.dbline -1
	.dbline 129
; 
; /* PORTA , send 'Q1'*/
; void task2(void *pdata)
; {
	.dbline 130
;   INT8U i=0,j,k,err;
	clr R20
	rjmp L44
L43:
	.dbline 132
;   while(1)
;   {
	.dbline 133
;      i++;
	inc R20
	.dbline 135
; #if DEBUG_IN_AVR_STUDIO==0
;      task_Delay();
	rcall _task_Delay
	.dbline 137
; #endif
;      OSTimeDly(3);
	ldi R16,3
	ldi R17,0
	rcall _OSTimeDly
	.dbline 139
; #if OS_SEM_EN
;      err=OS_NO_ERR;
	clr R2
	std y+2,R2
	.dbline 140
;      if(i>9)
	ldi R24,9
	cp R24,R20
	brsh L46
	.dbline 141
;      {//clear lcd and reset i
	.dbline 142
;        i=1;
	ldi R20,1
	.dbline 151
; #if LCD_EN
;        OSSemPend(&uart_sem,32700,&err);
;        if(OS_NO_ERR==err)
;        {
;          lcd_clear();			
;          OSSemPost(&uart_sem);
;        }
; #endif//LCD_EN
;      }//end i>9	
L46:
	.dbline 152
;      if((i>=0)&&(i<=9))
	cpi R20,0
	brlo L48
	ldi R24,9
	cp R24,R20
	brlo L48
	.dbline 153
;      {
	.dbline 154
;        OSSemPend(&uart_sem,32700,&err);
	mov R24,R28
	mov R25,R29
	adiw R24,2
	std y+0,R24
	std y+1,R25
	ldi R18,32700
	ldi R19,127
	ldi R16,<_uart_sem
	ldi R17,>_uart_sem
	rcall _OSSemPend
	.dbline 155
;        if(OS_NO_ERR==err)
	ldd R2,y+2
	tst R2
	brne L50
	.dbline 156
;        {
	.dbline 158
; #if DEBUG_IN_AVR_STUDIO==0
;          my_putc('Q'); my_putc((INT8U)(i+'0'));
	ldi R16,81
	rcall _my_putc
	.dbline 158
	mov R16,R20
	clr R17
	subi R16,208  ; offset = 48
	sbci R17,255
	rcall _my_putc
	.dbline 160
;          //read answer 
;          getchar();//should be 'A'
	rcall _getchar
	.dbline 161
; 		 DDRA=0xff;
	ldi R24,255
	out 0x1a,R24
	.dbline 162
;          PORTA=getchar()-'0';//should be '0' to '9'
	rcall _getchar
	mov R24,R16
	mov R25,R17
	sbiw R24,48
	out 0x1b,R24
	.dbline 164
; #endif
;          OSSemPost(&uart_sem);
	ldi R16,<_uart_sem
	ldi R17,>_uart_sem
	rcall _OSSemPost
	.dbline 165
;        }//end of send
L50:
	.dbline 166
;      }//end i>=0 and i<=9
L48:
	.dbline 168
L44:
	.dbline 131
	rjmp L43
X2:
	.dbline -2
	.dbline 169
; #endif
;   }//end while(1)
; }
L42:
	adiw R28,3
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l k 3 c
	.dbsym l j 3 c
	.dbsym l err 2 c
	.dbsym r i 20 c
	.dbsym r pdata 22 pV
	.dbend
	.dbfunc e task3 _task3 fV
;          pdata -> R16,R17
	.even
_task3::
	.dbline -1
	.dbline 172
; 
; void task3(void *pdata)
; {
	rjmp L54
L53:
	.dbline 174
	.dbline 175
	nop
	.dbline 176
L54:
	.dbline 173
	rjmp L53
X3:
	.dbline -2
	.dbline 177
;   while(1)
;   {
;     asm("nop");
;   }
; }
L52:
	.dbline 0 ; func end
	ret
	.dbsym r pdata 16 pV
	.dbend

⌨️ 快捷键说明

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