Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PIC se čudno ponaša
#1
Opisaću problem, zatim sledi kod, a i prikačene slike.
Radi se o čipu 16LF1554 koji ima CVD modul, pa i dva registra gde se smešta rezultat AD konverzije. Ono što meni treba je razlika ta dva rezultata. Hteo sam statistički da vidim kako se ponaša CVD, pa sam trigerovao modul deset puta (za početak), zabeležio rezultate iz oba registra kao i razliku, na fleš (redom idu umanjenik, umanjilac i razlika). Ispalo je da rezultat (razlika dva broja) nije tačan. Pomislio sam da mi brlja programator pri čitanju, pa sam nakon koda gde iz AD registra prebacujem vrednost u neke radne registre (Al, Ah) i (Bl, Bh), upisao jedan par od spornih brojeva u iste registre. U tom slučaju oduzimanje je tačno! Moje pitanje, je kako je moguće da ima razlike ako u te neke radne registre upišem vrednost iz nekog drugog registra (preko W) i ako upišem direktno broj u W, pa opet prebacim u registar. To ne bi smelo da bude, pa se pitam gde je greška? Čak sam i pre upisa razlike na fleš (nema u ovom kodu) ubacio vrednost registra (razlika) na portove i instrumentom izmerio stanja, koja su bila pogrešna, odnosno ista koja su upisana na fleš. Probao sam i sa 16F1503 (CVD algoritam, ali peške), opet isto.
Al, Ah, Bl, Bh, k imaju takve lokacije da je moguć pristupu iz bilo koje banke. Watchdog je isključen. Algoritam za oduzimanje je krnj, ali radi za vrednosti koje dobijam. Ovo je deo programa, jer prethodno ima drugih stvari.
--------------------------------------------------------------------------------
banksel PMCON1
MOVLW b'00000000' 
MOVWF PMADRL
movlw d'10'
movwf k
petlja
clrf Al 
clrf Ah
clrf Bl
clrf Bh
movlw    D'2'                               ; pauza od o.1S
        movwf    CounterC
        movlw    D'4'
        movwf    CounterB
        movlw    D'187'
        movwf    CounterA
loop3        decfsz    CounterA,1
        goto    loop3
        decfsz    CounterB,1
        goto    loop3
        decfsz    CounterC,1
        goto    loop3
BANKSEL AD1CON0      ;trigerovanje konverzije
BSF AD1CON0,1
BTFSC AD1CON0,1
GOTO $-1    
;RESULTS OF CONVERIONS 1.
banksel AAD1RES0H ;
movfw AAD1RES0H
movwf Ah
movfw AAD1RES0L
movwf Al
;RESULTS OF CONVERIONS 2.
banksel AAD1RES1H ;
movfw AAD1RES1H
movwf Bh
movfw AAD1RES1L
movwf Bl
;movlw 0x3         ;kada se skinu zarezi dobijam slučaj sa direktnim upisivanjem brojeva, druga slika
;movwf Ah
;movlw 0x34
;movwf Al
;movlw 0x0
;movwf Bh
;movlw 0xC1
;movwf Bl
call upis     ;upis vrednosti umanjenika
call upis1   ;upis vrednosti umanjioca
movfw Bl        
subwf Al,F
btfss STATUS,C
decf Ah,F
movfw Bh
subwf Ah,F
call upis  ;upis razlike. Pošto je razlika ostala u Ah i Al 
      
decfsz    k,1                   ;petlja da ponovim proces deset puta
        goto    petlja    
nista
nop
goto nista
 
upis
banksel PMCON1
incf PMADRL,f
MOVLW b'00000111'
MOVWF PMADRH
BCF PMCON1,CFGS ; Not configuration space
BSF PMCON1,WREN ; Enable writes
BSF PMCON1,LWLO

    movfw Al
    MOVWF PMDATL
    movfw Ah
    MOVWF PMDATH

MOVLW 55h ; Start of required write sequence:
MOVWF PMCON2 ; Write 55h
MOVLW 0AAh ;
MOVWF PMCON2 ; Write AAh
BSF PMCON1,WR ; Set WR bit to begin write
NOP ; NOP instructions are forced as processor writes; all the program memory write latches simultaneously
NOP ;
banksel PMCON1
BCF PMCON1,LWLO ; No more loading latches - Actually start Flash program; memory write
MOVLW 55h ; Start of required write sequence:
MOVWF PMCON2 ; Write 55h
MOVLW 0AAh ;
MOVWF PMCON2 ; Write AAh
BSF PMCON1,WR ; Set WR bit to begin write
NOP ; NOP instructions are forced as processor writes; all the program memory write latches simultaneously
NOP ; to program memory.
BCF PMCON1,WREN    
return

upis1
banksel PMCON1
incf PMADRL,f
MOVLW b'00000111'
MOVWF PMADRH
BCF PMCON1,CFGS ; Not configuration space
BSF PMCON1,WREN ; Enable writes
BSF PMCON1,LWLO

    movfw Bl
    MOVWF PMDATL
    movfw Bh
    MOVWF PMDATH


MOVLW 55h ; Start of required write sequence:
MOVWF PMCON2 ; Write 55h
MOVLW 0AAh ;
MOVWF PMCON2 ; Write AAh
BSF PMCON1,WR ; Set WR bit to begin write
NOP ; NOP instructions are forced as processor writes; all the program memory write latches simultaneously
NOP ;
banksel PMCON1
BCF PMCON1,LWLO ; No more loading latches - Actually start Flash program; memory write
MOVLW 55h ; Start of required write sequence:
MOVWF PMCON2 ; Write 55h
MOVLW 0AAh ;
MOVWF PMCON2 ; Write AAh
BSF PMCON1,WR ; Set WR bit to begin write
NOP ; NOP instructions are forced as processor writes; all the program memory write latches simultaneously
NOP ; to program memory.    
BCF PMCON1,WREN
return
end
---------------------------------------------------------------


Attached Files Thumbnail(s)

Reply


Messages In This Thread
PIC se čudno ponaša - by mp3police - 04-23-2017, 08:38 AM
RE: PIC se čudno ponaša - by enaB - 04-23-2017, 09:16 AM
RE: PIC se čudno ponaša - by mp3police - 04-23-2017, 09:46 AM
RE: PIC se čudno ponaša - by gorankg - 04-23-2017, 09:48 AM
RE: PIC se čudno ponaša - by vojinilic - 04-23-2017, 10:07 AM
RE: PIC se čudno ponaša - by gorankg - 04-23-2017, 10:07 AM
RE: PIC se čudno ponaša - by mp3police - 04-23-2017, 10:08 AM
RE: PIC se čudno ponaša - by mp3police - 04-23-2017, 10:27 AM
RE: PIC se čudno ponaša - by vojinilic - 04-23-2017, 10:28 AM
RE: PIC se čudno ponaša - by mp3police - 04-23-2017, 10:48 AM
RE: PIC se čudno ponaša - by gorankg - 04-23-2017, 11:45 AM
RE: PIC se čudno ponaša - by vojinilic - 04-23-2017, 11:46 AM
RE: PIC se čudno ponaša - by mp3police - 04-23-2017, 11:57 AM
RE: PIC se čudno ponaša - by vojinilic - 04-23-2017, 12:04 PM
RE: PIC se čudno ponaša - by mp3police - 04-23-2017, 12:20 PM
RE: PIC se čudno ponaša - by vojinilic - 04-23-2017, 12:33 PM
RE: PIC se čudno ponaša - by gorankg - 04-23-2017, 12:32 PM
RE: PIC se čudno ponaša - by gorankg - 04-23-2017, 12:49 PM
RE: PIC se čudno ponaša - by mp3police - 04-23-2017, 01:43 PM
RE: PIC se čudno ponaša - by dlalkovic - 04-23-2017, 07:12 PM
RE: PIC se čudno ponaša - by gorankg - 04-23-2017, 07:17 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)