Hello
I try to store some datas in the 18f452 EEPROM, but I have this bug:
18F452 lib is: from jal 0.9.0
include 18f452 -- target PICmicro
pragma target clock 10_000_000 -- oscillator frequency
-- configuration settings (fuses)
pragma target OSC HS -- HS crystal or resonator
pragma target WDT disabled -- no watchdog
pragma target DEBUG disabled -- no debugging
pragma target LVP disabled -- no Low Voltage Programming
pragma target PWRTE enabled -- pwr-up timer on: 72ms (p197)
pragma target BROWNOUT enabled -- brown-out reset on (p197)
pragma target VOLTAGE v42 -- brown-out reset at 4.2v (p197)
T0CON= 0b_0000_0111 --TMR0=OFF/ 16bit /
prescaler=1/256 debord 6,7s
INTCON= 0b_1110_1000 --enable interupt: tmr0, RB
port change
ADCON0= 0b_0000_0000 --disable ADC
ADCON1= 0b_0000_0111 --digital I/O
-------------------------------------------------------------------------------------------------------------------------------------------
The eeprom library:
procedure eeprom_w(byte in Address, byte in Data) is
assembler
bank movf Address,w ;
movwf EEADR ; load memory address
bank movf Data,w ;
movwf EEDATA ; Data to write in eeprom
bcf EECON1_EEPGD ; Point to DATA memory
bcf EECON1_CFGS ; Access program FLASH or Data EEPROM
memory
bsf EECON1_WREN ; Enable writes
bcf INTCON_GIE ; Disable interrupts
bcf INTCON_GIE ; Again, according to Josef
movlw 0x55 ;
movwf EECON2 ; Write 55h
movlw 0xAA ;
movwf EECON2 ; Write AAh
bsf EECON1_WR ; Set WR bit to begin write
nop ; Two nops, according to Stef
nop
bsf INTCON_GIE ; Enable interrupts
bcf EECON1_WREN ; Disable writes on write complete (EEIF
set)
end assembler
while EECON1_WR loop end loop ; wait for write completion
end procedure
-- --------------------------------------------------------------------
-- reading of Data-EEprom
-- --------------------------------------------------------------------
procedure eeprom_r( byte in Address, byte out Data ) is
assembler
bank movf Address,w ;
movwf EEADR ; Data Memory Address to read
bcf EECON1_EEPGD ; Point to DATA memory
bcf EECON1_CFGS ; Access program FLASH or Data EEPROM
memory
bsf EECON1_RD ; EEPROM Read
movf EEDATA,w ; w = EEDATA
bank movwf Data ; w -> Data
end assembler
end procedure
Here is my program test:
eeprom_w (0,0) --write data=0 at address 0
eeprom_w (1,1)
eeprom_w (2,2)
eeprom_w (3,3)
eeprom_r(0,x1), ( x1,x2,x3,x4 are deffined as byte)
eeprom_r(1,x2)
eeprom_r(2,x3)
eeprom_r(3,x4)
serial_sw_write(x1)
serial_sw_write(x2)
serial_sw_write(x3)
serial_sw_write(x4)
And monitoring thre result with via MicTerm, I have: "3333"
Perhaps somebody could give me a way to understand?
Thanks in advance
Phil
--
You received this message because you are subscribed to the Google Groups
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/jallib.
For more options, visit https://groups.google.com/groups/opt_out.