Zdravím
Mám tady kousek kodu
kód:
MOVWF CfgAdr ;adresa bunky eepromky
XORLW 64 ;velikost eepromky
BTFSS STATUS,Z ;Kdyz je konec eepromky tak tak
CLRF CfgAdr ;nastav adresu eepromky na 0
mě to nechce fungovat kde dělám chybu?díky
administrator: přejmenováno z "Funkce kódu"
jestli chces aby ti tenhle kousicek kodu fungoval tak misto MOVWF CfgAdr dej MOVF CfgAdr,W
treba takle
START
MOVF CfgAdr,W ;adresa bunky eepromky
;BCF STATUS,Z
XORLW 64 ;velikost eepromky
BTFSS STATUS,Z ;Kdyz je konec eepromky tak tak
GOTO $+3
CLRF CfgAdr ;nastav adresu eepromky na 0
GOTO $
INCF CfgAdr,F ; adresa eepromky +1
GOTO START
END
Instrukce XORLW provede exklusivní součet bitů registru W a konstanty.
Stejné bity = 0, rozdílné = 1.
01000000
XOR
01000000
00000000
Pokud je výsledek 0, STATUS,Z = 1
Takže místo instrukce BTFSS dej BTFSC.
Jak zajistit rozsah CfgAdr 0 až 63
jde také takto:
MOVLW B’00111111’
ANDWF CfgAdr,F ;1&1=1, ostatní=0