Ukladanie stringu z USART

[code];****************************************************************************
;preruseni od TMR0
;****************************************************************************
IF_TMR0
banksel INTCON
bcf INTCON,TMR0IF
; btg PORTA,2

movlw	b'10000111'  ;
movwf	T0CON
bsf		T0CON,TMR0ON

; clrf TMR0L
; clrf TMR0H
banksel SEGx_FLAG
; bcf TECKA1
; bsf PORTA,2
bsf GPS_OK

lfsr	0,GPS1

banksel	GPS_POCET_H_TEMP
movf	GPS_POCET_H_TEMP,w
banksel	FSR0H
addwf	FSR0H,f

banksel	GPS_POCET_L_TEMP
movf	GPS_POCET_L_TEMP,w
banksel	FSR0L
addwf	FSR0L,f
clrf	WREG
addwfc	FSR0H

movlw	0xFF
movwf	INDF0

banksel	GPS_POCET_L
movff	GPS_POCET_L_TEMP,GPS_POCET_L
movff	GPS_POCET_H_TEMP,GPS_POCET_H

clrf	GPS_POCET_L_TEMP
clrf	GPS_POCET_H_TEMP

movff	GPS_POCET_VET_TEMP,GPS_POCET_VET

clrf	GPS_POCET_VET_TEMP

IF_TMR0_END
#if (TEST)
call SEND_DATA
movlw .7
movwf GPS_POCET_VET
#else

#endif
; call TMRx_GPS_DEKOD
bra INT_END

;****************************************************************************
;preruseni od RS232
;****************************************************************************
IF_RS232

banksel	RCREG
movf	RCREG,w				; precist RCREG
banksel	PIR1				; jinak nejde vymazat priznak
bcf		PIR1,RCIF			; vymazat priznak preruseni
banksel	GPS_TEMP
movwf	GPS_TEMP			; RCREG ulozit do TEMP

banksel	TMR0L
movlw	b'10000000'  ;
movwf	T0CON
movlw	.200
movwf	TMR0H
clrf	TMR0L
bsf		T0CON,TMR0ON

banksel	GPS_TEMP
bcf		GPS_OK				; vynulovat ze NEjsou data komplet

; bsf TECKA1

; movff GPS_FSR0_H,FSR0H
; movff GPS_FSR0_L,FSR0L

; movff GPS_TEMP,POSTINC0

lfsr	0,GPS1

banksel	GPS_POCET_H_TEMP
movf	GPS_POCET_H_TEMP,w
banksel	FSR0H
addwf	FSR0H,f

banksel	GPS_POCET_L_TEMP
movf	GPS_POCET_L_TEMP,w
banksel	FSR0L
addwf	FSR0L,f
clrf	WREG
addwfc	FSR0H

banksel	GPS_TEMP
movf	GPS_TEMP,w
movwf	INDF0



banksel	GPS_POCET_L_TEMP
incf	GPS_POCET_L_TEMP
CLRF	WREG	
addwfc	GPS_POCET_H_TEMP


banksel	GPS_TEMP
movf	GPS_TEMP,w
xorlw	'$'
btfss	STATUS,Z
bra		IF_RS232_END

incf	GPS_POCET_VET_TEMP

IF_RS232_END

; bsf PORTA,2
; bcf PORTA,2

bra		INT_END	[/code]

Snad se v tom vyznáš. Pokud 1.7ms nic nepřijde na UART, vykoná se preruseni od TMR0 a bere se to že data s GPS jsou komplet. Pak se řeší co se vlastně uložilo.