 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		| flash_to_page:  @ scene number in R0, page number in R1
                PUSH {R4-R5,LR}
                BICS R4,R0,#0xFC00                          @ remove CSP header
                MOVS R5,R1
                LDR R3,=LPC_SPI0_BASE
                MOVS R2,#clockspeed/5000000
                STR R2,[R3,SPIDIV]
                BL e2busy
                MOVS R2,#0x03000000                        @ read command
                ADDS R2,R2,R4,LSL #6
                BL waitspitx
                LSRS R0,R2,#16
                MOVT R0,#0xF4D                              @ 16 bit, ignore rx, eeprom cs
                STR R0,[R3,SPITXDATCTL]
                BL waitspitx
                UXTH R0,R2
                MOVT R0,#0xF6D
                STR R0,[R3,SPITXDATCTL]
                LDR R4,=PAGELEVELS
                MOVS R2,#0
                ADDS R4,R4,R5,LSL #4
fetchlevel:     BL waitspitx
                LDR R0,=0xF2D0000
                STR R0,[R3,SPITXDATCTL]
                BL waitspirx
                LDR R0,[R3,SPIRXDAT]
                STRH R0,[R4],#2
                ADDS R2,#2
                CMP R2,#16
                BLO.n fetchlevel
                LDR R4,=PAGEALLOCS
                MOVS R2,#0
                ADDS R4,R4,R5,LSL #5
fetchalloc:     BL waitspitx
                LDR R0,=0xF2D0000
                STR R0,[R3,SPITXDATCTL]
                BL waitspirx
                LDR R0,[R3,SPIRXDAT]
                STRH R0,[R4],#2
                ADDS R2,#1
                CMP R2,#16
                BLO.n fetchalloc
                MOVS R0,#0x80
                STR R0,[R3,SPISTAT]                         @ force EOT
                POP {R4-R5,PC} | 
| waitspirx: LDR R0,[R3,SPISTAT] @ R3 points to SPI LSRS R0,R0,#1 BCC.n waitspirx BX LR waitspitx: LDR R0,[R3,SPISTAT] @ R3 points to SPI LSRS R0,R0,#2 BCC.n waitspitx BX LR | 
| e2busy:         PUSH {LR}
                LDR R3,=LPC_SPI0_BASE
                BL waitspitx
                MOVS R0,#5
                MOVT R0,#0x74D                              @ 8 bit write, ignore RX, EEPROM cs
                STR R0,[R3,SPITXDATCTL]
writecomplete:  BL waitspitx
                MOVT R0,0x70D                               @ 8 bit write, EEPROM cs
                STR R0,[R3,SPITXDATCTL]
                BL waitspirx
                LDR R0,[R3,SPIRXDAT]                        @ keep reading status register until ready
                LSRS R0,R0,#1
                BCS.n writecomplete
                MOVS R0,#0x80
                STR R0,[R3,SPISTAT]                         @ end transmission
                POP {PC} | 
 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi there,
How can i wait until the tx buffer is done.
I know that TFE bit of status register indicates that tx buffer is empty but how can i wait until tx buffer is empty if i dont force tx buff to empty?
Can you share some code or make any suggestion of what the meaning of waiting until tx buf is empty?
 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		 
					
				
		
 lpcware
		
			lpcware
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		