Dotaz na PICe a Eprom
Martin Šaněk
sanek.martin@volny.cz
Neděle Květen 23 20:49:49 CEST 2004
Hele chlapi (a damy jsou-li tu nejake) mozna se ptam blbe, ale tak zly
to se mnou zase neni.(alepon si myslim :-(() Na zacatku jsem posilal vypis zdrojaku a posilam
ho znovu:
program
tady na tom miste jsou hodnoty k zapsani+adresa
call save_eprom
tady na tom miste jsou hodnoty k zapsani+adresa
.
.
.
call read_eprom
sleep
End
save_eprom
bcf INTCON,GIE
banksel EEDATA
movwf EEDATA ;data k zapsani do EEPROM
banksel EECON1
bcf EECON1,EEPGD ;zapis do Datove casti pameti
bsf EECON1,WREN ;v 1 povoluje zapis do EEPROM
bcf INTCON,GIE ;zakazani vsech interrupts
movlw 55h ;nutna sequence
movwf EECON2 ;nutna sequence
movlw 0AAh ;nutna sequence
movwf EECON2 ;nutna sequence
bsf EECON1,WR ;zapis do EEPROM
banksel PIR2
btfss PIR2,EEIF ;kontrola, zda uz je zapsano
goto $-1 ;neni -> zpet
bsf INTCON,GIE
banksel TMR0 ;banka 0
return
read_eprom
movlw 20 ;adresa v EEPROM(snad uz je to dobre)
call rdee ;precti hodnotu z pameti
movwf ZMENA ;a uloz ji do RAM
movlw 21 ;adresa v EEPROM
call rdee
movwf ROZBEH_CERPADLA
movlw 22 ;adresa v EEPROM
call rdee
movwf TOPENI_TIME
movlw 23 ;adresa v EEPROM
call rdee
movwf TEPLOTA_MAX
movlw 24 ;adresa v EEPROM
call rdee
movwf FLAG_TOPENI
return
rdee
bsf STATUS,RP1
bcf STATUS,RP0
movwf EEADR
bsf STATUS,RP0
bcf EECON1,EEPGD
bsf EECON1,RD
bcf STATUS,RP0
movf EEDATA,w
banksel TMR0 ;navrat do banky0
return
No a jako dukaz, ze to je zapsane dobre si myslim je, ze kdyz to
jenom zapisu a potom to prectu v programatoru, tak ty hodnoty jsou
v EEPROM zapsane dobre a na spravnych mistech. Pouze to cteni je porad stejne
spatne (0Fh). No ale kdyz se mezi obe volani da pauza (mam uz overeno
100ms) tak to funguje. A ja se znovu ptam: PROC TAM MUSI BYT PAUZA???
Martin
p.s. cekam zdrcujici kritiku meho postupu :-()
Další informace o konferenci Hw-list