📄 32mflash.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 + -