Dotaz na PICe a Eprom

Tomas Mainzer tmgprs@t-email.cz
Neděle Květen 23 21:04:53 CEST 2004


Jenom tip:
nechybi vam banksel nekde na zacatku v rutine rrde (nebo read_eeprom)?
(ciste jen podle analogie s rutinou save_eeprom, kde ji na stejnem miste
mate)
T.M.



> 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 :-()
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> HW-list@mailman.nethouse.cz
> http://nethouse.cz/mailman/listinfo/hw-list
>




Další informace o konferenci Hw-list