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

📄 32mflash.s

📁 D12固件程序
💻 S
字号:
	.module _32Mflash.c
	.area data(ram, con, rel)
_Fifo1_Flag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\32Mflash.c
	.dbsym e Fifo1_Flag _Fifo1_Flag c
_Fifo2_Flag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\32Mflash.c
	.dbsym e Fifo2_Flag _Fifo2_Flag c
_Pixel_Count::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\32Mflash.c
	.dbsym e Pixel_Count _Pixel_Count i
	.area text(rom, con, rel)
	.dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\32Mflash.c
	.dbfunc e flashRead _flashRead fV
;              j -> <dead>
;             ch -> R18
;              i -> R16
	.even
_flashRead::
	.dbline -1
	.dbline 11
; #include "io8515v.h"
; #include "d12head.h"
; 
; FLASH_STRUCT Mflash;
; 
; unsigned char Fifo1_Flag = 0x00;
; unsigned char Fifo2_Flag = 0x00;
; unsigned int  Pixel_Count = 0x00;
; 
; void flashRead(void)
; {
	.dbline 14
;     unsigned char ch;
; 	unsigned char i,j;
; 	ch=PINB;
	in R18,0x16
	.dbline 15
; 	D12_DATA = 64;
	ldi R24,64
	sts 32512,R24
	.dbline 17
; 	
; 	if(ch&0x01)//fifo1
	sbrs R18,0
	rjmp L8
	.dbline 18
; 	{
	.dbline 19
; 		if(Fifo1_Flag==0x00)
	lds R2,_Fifo1_Flag
	tst R2
	brne L10
	.dbline 20
; 		{
	.dbline 21
; 			D12_DATA=FIRST_CMD;
	ldi R24,170
	sts 32512,R24
	.dbline 22
; 			D12_DATA=SECOND_CMD;
	ldi R24,85
	sts 32512,R24
	.dbline 23
; 			D12_DATA=THIRD_CMD;
	ldi R24,235
	sts 32512,R24
	.dbline 24
; 			D12_DATA=FOURTH_CMD;
	ldi R24,144
	sts 32512,R24
	.dbline 25
; 			Fifo1_Flag=0x01;
	ldi R24,1
	sts _Fifo1_Flag,R24
	.dbline 26
; 			Fifo2_Flag=0x00;
	clr R2
	sts _Fifo2_Flag,R2
	.dbline 27
; 			Pixel_Count=0x00;
	clr R3
	sts _Pixel_Count+1,R3
	sts _Pixel_Count,R2
	.dbline 28
; 			for(i=0;i<60;i++)
	clr R16
	rjmp L15
L12:
	.dbline 29
	.dbline 30
	lds R2,48896
	sts 32512,R2
	.dbline 31
	lds R24,_Pixel_Count
	lds R25,_Pixel_Count+1
	adiw R24,1
	sts _Pixel_Count+1,R25
	sts _Pixel_Count,R24
	.dbline 32
L13:
	.dbline 28
	inc R16
L15:
	.dbline 28
	cpi R16,60
	brlo L12
	.dbline 34
; 			{
; 				D12_DATA=fifo1;
; 				Pixel_Count++;
; 			}	
; 			
; 		}
	rjmp L9
L10:
	.dbline 35
; 		else if (Fifo1_Flag==0x01)
	lds R24,_Fifo1_Flag
	cpi R24,1
	brne L16
	.dbline 36
; 		{
	.dbline 37
; 			for(i=0;i<64;i++)
	clr R16
	rjmp L21
L18:
	.dbline 38
; 			{
	.dbline 39
; 				D12_DATA=fifo1;
	lds R2,48896
	sts 32512,R2
	.dbline 40
; 				Pixel_Count++;
	lds R24,_Pixel_Count
	lds R25,_Pixel_Count+1
	adiw R24,1
	sts _Pixel_Count+1,R25
	sts _Pixel_Count,R24
	.dbline 41
; 				if(Pixel_Count==2048)
	cpi R24,0
	ldi R30,8
	cpc R25,R30
	brne L22
	.dbline 42
; 				{
	.dbline 43
; 					Fifo1_Flag=0x02;
	ldi R24,2
	sts _Fifo1_Flag,R24
	.dbline 44
; 					Pixel_Count=0x00;				
	clr R2
	clr R3
	sts _Pixel_Count+1,R3
	sts _Pixel_Count,R2
	.dbline 45
; 					for(i=0;i<60;i++)
	clr R16
	rjmp L27
L24:
	.dbline 46
	.dbline 47
	clr R2
	sts 32512,R2
	.dbline 48
L25:
	.dbline 45
	inc R16
L27:
	.dbline 45
	cpi R16,60
	brlo L24
	.dbline 49
; 					{
; 						D12_DATA=0x00;
; 					}
; 					break;
	rjmp L9
L22:
	.dbline 51
L19:
	.dbline 37
	inc R16
L21:
	.dbline 37
	cpi R16,64
	brlo L18
	.dbline 52
; 				}
; 			}			
; 		}
	rjmp L9
L16:
	.dbline 53
; 		else if (Fifo1_Flag==0x02)
	lds R24,_Fifo1_Flag
	cpi R24,2
	breq X0
	rjmp L9
X0:
	.dbline 54
; 		{			
	.dbline 55
; 			for(i=0;i<64;i++)
	clr R16
	rjmp L33
L30:
	.dbline 56
	.dbline 57
	clr R2
	sts 32512,R2
	.dbline 58
L31:
	.dbline 55
	inc R16
L33:
	.dbline 55
	cpi R16,64
	brlo L30
	.dbline 59
; 			{
; 				D12_DATA=0x00;	
; 			}				
; 		}		
	.dbline 60
; 	}
	rjmp L9
L8:
	.dbline 61
; 	else if(ch&0x02)//fifo2
	sbrs R18,1
	rjmp L34
	.dbline 62
; 	{
	.dbline 63
; 		if(Fifo2_Flag==0x00)
	lds R2,_Fifo2_Flag
	tst R2
	brne L36
	.dbline 64
; 		{
	.dbline 65
; 			D12_DATA=FIRST_CMD;
	ldi R24,170
	sts 32512,R24
	.dbline 66
; 			D12_DATA=SECOND_CMD;
	ldi R24,85
	sts 32512,R24
	.dbline 67
; 			D12_DATA=THIRD_CMD;
	ldi R24,235
	sts 32512,R24
	.dbline 68
; 			D12_DATA=FOURTH_CMD;
	ldi R24,144
	sts 32512,R24
	.dbline 69
; 			Fifo1_Flag=0x00;
	clr R2
	sts _Fifo1_Flag,R2
	.dbline 70
; 			Fifo2_Flag=0x01;
	ldi R24,1
	sts _Fifo2_Flag,R24
	.dbline 71
; 			Pixel_Count=0x00;				
	clr R3
	sts _Pixel_Count+1,R3
	sts _Pixel_Count,R2
	.dbline 72
; 			for(i=0;i<60;i++)
	clr R16
	rjmp L41
L38:
	.dbline 73
	.dbline 74
	lds R2,57088
	sts 32512,R2
	.dbline 75
	lds R24,_Pixel_Count
	lds R25,_Pixel_Count+1
	adiw R24,1
	sts _Pixel_Count+1,R25
	sts _Pixel_Count,R24
	.dbline 76
L39:
	.dbline 72
	inc R16
L41:
	.dbline 72
	cpi R16,60
	brlo L38
	.dbline 77
; 			{
; 				D12_DATA=fifo2;
; 				Pixel_Count++;
; 			}			
; 		}
	rjmp L35
L36:
	.dbline 78
; 		else if(Fifo2_Flag==0x01)
	lds R24,_Fifo2_Flag
	cpi R24,1
	brne L42
	.dbline 79
; 		{
	.dbline 80
; 			for(i=0;i<64;i++)
	clr R16
	rjmp L47
L44:
	.dbline 81
; 			{
	.dbline 82
; 				D12_DATA=fifo2;
	lds R2,57088
	sts 32512,R2
	.dbline 83
; 				Pixel_Count++;
	lds R24,_Pixel_Count
	lds R25,_Pixel_Count+1
	adiw R24,1
	sts _Pixel_Count+1,R25
	sts _Pixel_Count,R24
	.dbline 84
; 				if(Pixel_Count==2048)
	cpi R24,0
	ldi R30,8
	cpc R25,R30
	brne L48
	.dbline 85
; 				{
	.dbline 86
; 					Fifo2_Flag=0x02;
	ldi R24,2
	sts _Fifo2_Flag,R24
	.dbline 87
; 					Pixel_Count=0x00;
	clr R2
	clr R3
	sts _Pixel_Count+1,R3
	sts _Pixel_Count,R2
	.dbline 88
; 					for(i=0;i<60;i++)
	clr R16
	rjmp L53
L50:
	.dbline 89
	.dbline 90
	clr R2
	sts 32512,R2
	.dbline 91
L51:
	.dbline 88
	inc R16
L53:
	.dbline 88
	cpi R16,60
	brlo L50
	.dbline 92
; 					{
; 						D12_DATA=0x00;
; 					}
; 					break;
	rjmp L35
L48:
	.dbline 94
L45:
	.dbline 80
	inc R16
L47:
	.dbline 80
	cpi R16,64
	brlo L44
	.dbline 95
; 				}
; 			}					
; 		}
	rjmp L35
L42:
	.dbline 96
; 		else if (Fifo2_Flag==0x02)
	lds R24,_Fifo2_Flag
	cpi R24,2
	brne L35
	.dbline 97
; 		{
	.dbline 98
; 			for(i=0;i<64;i++)
	clr R16
	rjmp L59
L56:
	.dbline 99
	.dbline 100
	clr R2
	sts 32512,R2
	.dbline 101
L57:
	.dbline 98
	inc R16
L59:
	.dbline 98
	cpi R16,64
	brlo L56
	.dbline 102
; 			{
; 				D12_DATA=0x00;	
; 			}			
; 		}				
	.dbline 103
; 	}
	rjmp L35
L34:
	.dbline 105
; 	else//
; 	{	
	.dbline 106
; 		Fifo1_Flag=0x00;
	clr R2
	sts _Fifo1_Flag,R2
	.dbline 107
; 		Fifo2_Flag=0x00;	
	sts _Fifo2_Flag,R2
	.dbline 108
; 		for(i=0;i<64;i++)
	clr R16
	rjmp L63
L60:
	.dbline 109
	.dbline 110
	clr R2
	sts 32512,R2
	.dbline 111
L61:
	.dbline 108
	inc R16
L63:
	.dbline 108
	cpi R16,64
	brlo L60
	.dbline 112
; 		{
; 			D12_DATA=0x00;	
; 		}		
; 	}
L35:
L9:
	.dbline 114
; 	
; 	D12_COMMAND = 0xfa;		// 设置 IN 缓冲区有效(满标志)
	ldi R24,250
	sts 32513,R24
	.dbline -2
	.dbline 117
; 	
; 	
; }
L7:
	.dbline 0 ; func end
	ret
	.dbsym l j 1 c
	.dbsym r ch 18 c
	.dbsym r i 16 c
	.dbend
	.dbfunc e flashID _flashID fV
;              i -> R16
	.even
_flashID::
	.dbline -1
	.dbline 124
; 
; /** /
; 读取FLASH ID
; 返回0xec 0x75
; /**/
; void flashID(void)
; {
	.dbline 126
; 	char i;
; 	fCOMMAND = 0x90;
	ldi R24,144
	sts 40960,R24
	.dbline 127
; 	fADD = 0x00;
	clr R2
	sts 36864,R2
	.dbline 128
; 	i = fDATA;
	lds R16,32768
	.dbline 129
; 	XmtBuff.msg[0] = i;
	sts _XmtBuff+16,R16
	.dbline 130
; 	i = fDATA;
	lds R16,32768
	.dbline 131
; 	XmtBuff.msg[1] = i;
	sts _XmtBuff+16+1,R16
	.dbline 132
; 	XmtBuff.msgL = 2;
	ldi R24,2
	sts _XmtBuff+32,R24
	.dbline 133
; 	csram;
	sts 0xfc01,R22
	.dbline 133
	.dbline -2
	.dbline 134
; }
L64:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\32Mflash.c
_Mflash::
	.blkb 16
	.dbunion 0 2 .3
	.dbfield 0 c A[2:2]c
	.dbfield 0 r i
	.dbend
	.dbunion 0 4 .4
	.dbfield 0 c A[4:4]c
	.dbfield 0 L l
	.dbend
	.dbunion 0 2 .5
	.dbfield 0 c A[2:2]c
	.dbfield 0 r i
	.dbend
	.dbunion 0 4 .6
	.dbfield 0 c A[4:4]c
	.dbfield 0 L l
	.dbend
	.dbstruct 0 16 .2
	.dbfield 0 wsec c
	.dbfield 1 wcol c
	.dbfield 2 wrow S[.3]
	.dbfield 4 W S[.4]
	.dbfield 8 rsec c
	.dbfield 9 rcol c
	.dbfield 10 rrow S[.5]
	.dbfield 12 R S[.6]
	.dbend
	.dbsym e Mflash _Mflash S[.2]

⌨️ 快捷键说明

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