Gast
#819243
Hallo,
ich habe hier gerade in kleines Problem...
ich möchte daten einlesen und speichern, damit ich die später wieder
ausgeben kann.
Nur leider ist das Datenwort so lang, dass ich dafür 12Bytes belegen
muss...
Ich bekomme das aber nicht hin.
Schaff es nur mittels Pointer 8Byte einzulesen und die dann auszugeben.
Der Pointer fängt bei mir bei 0x08 an und erhöt sich nach jedem
einlesevorgang
danach setze ich FSr wieder auf 0x08 und beginne die Bytes auszugeben.
sobald ich aber das 9. mal Incrementiere, gibt der ausgang lauter 0en
aus.
mein code sieht so aus,
MOVLW 0x08
MOVWF FSR
Call Einlesen
INCF FSR,.1
Call Einlesen
INCF FSR,.1
Call Einlesen
INCF FSR,.1
Call Einlesen
INCF FSR,.1
Call Einlesen
INCF FSR,.1
Call Einlesen
INCF FSR,.1
Call Einlesen
INCF FSR,.1
Call Einlesen
; INCF FSR,.1
; Call Einlesen
MOVLW 0x08
MOVWF FSR
CALL Ausgabe_0
INCF FSR,.1
CALL Ausgabe_0
INCF FSR,.1
CALL Ausgabe_0
INCF FSR,.1
CALL Ausgabe_0
INCF FSR,.1
CALL Ausgabe_0
INCF FSR,.1
CALL Ausgabe_0
INCF FSR,.1
CALL Ausgabe_0
INCF FSR,.1
CALL Ausgabe_0
; INCF FSR,.1
; CALL Ausgabe_0
...
...
Einlesen
MOVLW .8
MOVWF marke1
Einlesen_1
BTFSC Input
GOTO lesen_1
BTFSS Input
GOTO lesen_0
GOTO Einlesen
lesen_1
BCF STATUS,0
RLF INDF,.1
MOVFW INDF
XORLW b'00000001'
MOVWF INDF
CALL WAIT
DECFSZ marke1,.1
GOTO Einlesen_1
retlw .0
lesen_0
BCF STATUS,0
RLF INDF,.1
MOVFW INDF
XORLW b'00000000'
MOVWF INDF
CALL WAIT
DECFSZ marke1,.1
GOTO Einlesen_1
RETLW .0
...
...
Ausgabe_0
MOVFW INDF
MOVWF Ausgabe
MOVLW 0x08
MOVWF marke2
BCF STATUS,0
Ausgabe_1
RLF Ausgabe,.1
BTFSC STATUS,0
BSF Output_1
BTFSS STATUS,0
BCF Output_1
call WAIT
DECFSZ marke2,.1
GOTO Ausgabe_1
retlw .0
ich kann mir vorstellen, dass der Speicher bei dem PIC begrenzt ist,
aber welche möglichkeiten habe ich noch Bytes abzuspeichern?
Würde mich über eine Antwort sehr freuen, da ich sonst nicht weiter
komme :(
Gruß
Thomas