Dotaz na PICe a Eprom

Šerých Jakub Serych@panska.cz
Neděle Květen 23 21:05:17 CEST 2004


Proste jadro procesoru rekne bloku EEPROM "zapis to" a dela si svoje. Blok EEPROM si taky dela svoje - a pekne dlouho. Nekdy to dodela, takze kdyz ho pak date do programatoru je to OK. Ale v dobe pozadavku na cteni to jeste zdaleka nema hotove.

Jakub Serych

> -----Original Message-----
> From: Martin Šaněk [mailto:sanek.martin@volny.cz]
> Sent: Sunday, May 23, 2004 8:50 PM
> To: [HWnews]
> Subject: Re[6]: Dotaz na PICe a Eprom
> 
> 
> 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