Dotaz na PICe a Eprom

Frantiąek Burian BuFran@seznam.cz
Neděle Květen 23 21:06:05 CEST 2004


Dobrý den,
23. května 2004, 20:49:49, napsal jste:

Nikde tu nevidím kvitování příznaku EEIF. Kdo jej nuluje ? ®e by
nějaký skřítek ? Programátor by se na hloupé skřítky neměl spoléhat
... Viz kód:

M©> program
M©>          tady na tom miste jsou hodnoty k zapsani+adresa
M©>        call      save_eprom
M©>          tady na tom miste jsou hodnoty k zapsani+adresa
M©>               .
M©>               .
M©>               .
M©>        call      read_eprom
M©>        sleep
M©>          End

       
M©> save_eprom
M©>         bcf     INTCON,GIE
M©>         banksel EEDATA
M©>         movwf   EEDATA          ;data k zapsani do EEPROM
M©>         banksel EECON1          
M©>         bcf     EECON1,EEPGD    ;zapis do Datove casti pameti

            bcf     PIR2,EEIF
            
M©>         bsf     EECON1,WREN     ;v 1 povoluje zapis do EEPROM
M©>         bcf     INTCON,GIE      ;zakazani vsech interrupts
M©>         movlw   55h             ;nutna sequence 
M©>         movwf   EECON2          ;nutna sequence 
M©>         movlw   0AAh            ;nutna sequence 
M©>         movwf   EECON2          ;nutna sequence 
M©>         bsf     EECON1,WR       ;zapis do EEPROM
M©>         banksel PIR2
M©>         btfss   PIR2,EEIF       ;kontrola, zda uz je zapsano
M©>         goto    $-1             ;neni -> zpet           
M©>         bsf     INTCON,GIE
M©>         banksel TMR0            ;banka 0
M©>         return  


M©> read_eprom
M©>         movlw   20              ;adresa v EEPROM(snad uz je to dobre)
M©>         call    rdee            ;precti hodnotu z pameti
M©>         movwf   ZMENA           ;a uloz ji do RAM
M©>         movlw   21              ;adresa v EEPROM
M©>         call    rdee
M©>         movwf   ROZBEH_CERPADLA
M©>         movlw   22              ;adresa v EEPROM
M©>         call    rdee
M©>         movwf   TOPENI_TIME
M©>         movlw   23              ;adresa v EEPROM
M©>         call    rdee
M©>         movwf   TEPLOTA_MAX
M©>         movlw   24              ;adresa v EEPROM
M©>         call    rdee
M©>         movwf   FLAG_TOPENI
M©>         return
M©> rdee
M©>        bsf     STATUS,RP1
M©>         bcf     STATUS,RP0
M©>         movwf   EEADR
M©>         bsf     STATUS,RP0
M©>         bcf     EECON1,EEPGD
M©>         bsf     EECON1,RD
M©>         bcf     STATUS,RP0
M©>         movf    EEDATA,w
M©>         banksel TMR0        ;navrat do banky0
M©>         return

M©>  No a jako dukaz, ze to je zapsane dobre si myslim je, ze kdyz to
M©>  jenom zapisu a potom to prectu v programatoru, tak ty hodnoty jsou
M©>  v EEPROM zapsane dobre a na spravnych mistech. Pouze to cteni je porad stejne
M©>  spatne (0Fh). No ale kdyz se mezi obe volani da pauza (mam uz overeno
M©>  100ms) tak to funguje. A ja se znovu ptam: PROC TAM MUSI BYT PAUZA???

Ono totiľ je EEIF stale v log.1 a tudiz ta "problematicka" smycka je
vzdy preskocena. Taky se mi stavalo. A taky bacha na nektere 16F627,
maji chybu prave v modulu EEPROM a programuji se uplne jinak ...

M©>  p.s. cekam zdrcujici kritiku meho postupu :-()

:) Taky jsem se nad podobnymi problemy drive pachtil ....


-- 
S pozdravem,
 Frantiąek Burian
 BuFran@seznam.cz
------------- daląí část ---------------
Netextová příloha byla odstraněna...
Jméno: [ľádný popis není k dispozici]
Typ: application/pgp-signature
Velikost: 282 bytes
Popis: [ľádný popis není k dispozici]
Url : http://list.hw.cz/pipermail/hw-list/attachments/20040523/34c6549d/attachment-0001.pgp 
------------- daląí část ---------------
Netextová příloha byla odstraněna...
Jméno: smime.p7s
Typ: application/pkcs7-signature
Velikost: 1095 bytes
Popis: S/MIME Cryptographic Signature
Url : http://list.hw.cz/pipermail/hw-list/attachments/20040523/34c6549d/attachment-0003.bin 


Daląí informace o konferenci Hw-list