Hallo Experten,
brauche wieder mal Eure Hilfe, PIC16F877 => EEPROM.
Was immer ich einstelle und auch speichere, beim nächsten Einschalten erscheint eine „1“, egal welchen Wert ich zuletzt abgelegt habe.
Hier mal ein Ausschnitt aus dem Programm:
org 0
clrf PCLATH ;
goto prg ;ab zum Programm,
;überspingen der ISR-Routine
;-----------------------------------------------------------
; org 4
; hier Interrupt
; retfie
;-----------------------------------------------------------
prg
movlw b’00100000’ ;Timerinterrupt
movwf INTCON ;deaktivieren
movlw .0
call EEadrset
call EEread
movwf eins
movlw b’10100000’ ;Timerinterrupt
movwf INTCON ;aktivieren
;-----------------------------------------------------------
prg2 ;Start Endlosschleife
movfw eins
call anzeige_e
movwf PORTD
btfsc Teh
goto prog2
movlw .250
call wait
btfss Teh
goto prog2
movlw .250
call wait
incf eins
movfw eins
xorlw .10
btfss STATUS,Z
goto prog2
movlw .0
movwf eins
call mem1 ;Wert im EEPROM speichern
goto prg2
;-----------------------------------------------------------
mem1
movlw b’00100000’ ;Timerinterrupt
movwf INTCON ;deaktivieren
movlw .0
call EEadrset
movfw eins
call EEwrite
movlw b’10100000’ ;Timerinterrupt
movwf INTCON ;aktivieren
return
Wo liegt hier mein Denkfehler? Was hab ich übersehen?
In der Hoffnung, daß mir jemand 'nen Tip geben kann, schon mal Danke im Voraus.
Grüße vom genervten
Zeulino