Problem skriva till EEPROM PIC16F887 *LÖST*
Postat: 24 maj 2009, 21:55:13
Försöker få igång kod för att skriva till EEPROM i en PIC16F887, har bara testat i simulatorn i MPLAB IDE v8.10. Har däremot fått läsning av EEPROM att fungera i simulatorn.
Har utgått från exemplet 10-2 i manualen.
Problemet är att det skrivs inte in något i EEPROM-minnet.
I exemplet 10-2 i manualen valdes bank EEADR det allra första, men om jag gör så blir det bara nollor i EEADR och EEDATA, är det fel i exemplet? eller har jag gjort något fel? misstänker att det har med banker att göra. Har skrivit om den delen av koden och då fungerar det med att det kommer in rätt siffror i EEADR och EEDATA.
Men fortfarande så skrivs inget tilll EEPROM-minnet!
I exemplet 10-2 i manualen så används SLEEP, trodde detta hade funkionen att gå ner i sovläge för att spara energi, vad har SLEEP med EEPROM att göra?
Tacksam för hjälp med dessa problem!
Har utgått från exemplet 10-2 i manualen.
Problemet är att det skrivs inte in något i EEPROM-minnet.
I exemplet 10-2 i manualen valdes bank EEADR det allra första, men om jag gör så blir det bara nollor i EEADR och EEDATA, är det fel i exemplet? eller har jag gjort något fel? misstänker att det har med banker att göra. Har skrivit om den delen av koden och då fungerar det med att det kommer in rätt siffror i EEADR och EEDATA.
Men fortfarande så skrivs inget tilll EEPROM-minnet!
I exemplet 10-2 i manualen så används SLEEP, trodde detta hade funkionen att gå ner i sovläge för att spara energi, vad har SLEEP med EEPROM att göra?
Tacksam för hjälp med dessa problem!
Kod: Markera allt
;****************************** Skriv till EEPROM ************************
;*************************************************************************
;Adress som ska skrivas till läggs i Adress_EEPROM och datan som ska skrivas
;läggs i Data_WR_EEPROM
;*************************************************************************
banksel PORTA ;Välj bank
movf Adress_EEPROM,w ;Kopiera adress till w-reg
banksel EEADR ;Välj bank
movwf EEADR ;Skriv adress
banksel PORTA ;Välj bank
movf Data_WR_EEPROM,w ;Kopiera data till w-reg
banksel EEADR ;Välj bank
movwf EEDATA ;Skriv data
banksel EECON1 ;Välj bank
bcf EECON1,EEPGD ;Peka på DATA-minnet
bsf EECON1,WREN ;Skriva till EEPROM är tillåten
bcf INTCON,GIE ;Stäng av interrupt
btfsc INTCON,GIE ;Kolla interrupt
goto $-2 ;Hoppa tillbaka och kolla igen
movlw h'55' ;Skriv kod 55
movwf EECON2
movlw h'AA' ;Skriv kod AA
movwf EECON2
bsf EECON1,WR ;Skriv till EEPROM
bsf INTCON,GIE ;Tillåt interrupt
bcf EECON1,WREN ;Skriva till EEPROM ej tillåtet
banksel PORTA ;Välj bank
return