PIC - instrukce MOVF

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
josefhajek
Příspěvky: 89
Registrován: 07 lis 2011, 00:00

PIC - instrukce MOVF

#1 Příspěvek od josefhajek »

Zdravím,

byl jsem už zoufalý z nefunčknosti svého programu, a nakonec po krokování v programu MPLAB jsem zjistil, že instrukce MOVF nějak nefunguje podle popisu !?

MOVF - MOVe F
Zápis: MOVF f,d
Operace: (f) -> d
Popis: Obsah registru f přesuneme do registru W (je-li d=0) nebo zpět do registru f (je-li d=1).
Cyklů: 1 Ovlivňuje: Z

Takže z toho popisu chápu, že můj následující kód vymaže registr CISLO, přesune do W 0Ah, (10DEC) toto číslo přesune do CISLO, potom vynuluje W registr, a v poslední příkaz přesune z CISLO do W cislo 0Ah (10DEC)
CLRF CISLO
MOVLW 0Ah
MOVWF CISLO
MOVLW 00h
MOVF CISLO,0
end

Ale v MPLABu se děje to, že tenhle kód dělá všechno dle očekávání, ale poslední instrukce MOVF nenasype do W 10ku DEC jak bych očekával, ale vezme se tam odněkud číslo 167.

CO TO SAKRA JE?!

Díky :D [/code]
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#2 Příspěvek od procesor »

Daj tu celý program.
Aká hodnota je CISLO? Teraz rozmýšlaj!
Uživatelský avatar
josefhajek
Příspěvky: 89
Registrován: 07 lis 2011, 00:00

#3 Příspěvek od josefhajek »

To jsem psal, hodnota CISLO je 0Ah, tj 10 DEC. Program přikládam včetně výsledku a stavu registru
Přílohy
mplab.PNG
(65.08 KiB) Staženo 194 x
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#4 Příspěvek od procesor »

Nehovorím čo strkáš do "CISLO", ale akú hodnotu má "CISLO". To sú dve rôzne veci. jedno je meno bunky-RAM, druhé je obsah-(RAM).

Pozerám na program....to je úryvok, alebo celý zdrojový text a nič viac?
npr.:
ORG je 0?
Procesor typ?
Niektoré veci definujem (automaticky), ani to bez nich nepreložíš.
Program "end"-om neskončíš
Naposledy upravil(a) procesor dne 29 led 2012, 17:04, celkem upraveno 1 x.
Uživatelský avatar
josefhajek
Příspěvky: 89
Registrován: 07 lis 2011, 00:00

#5 Příspěvek od josefhajek »

Áha, tak to potom jo:) CISLO sedi na 20h, org vůbec nepoužívam, není to v soupisu instrukcí pro PICe, a typ je 16F84A, ale to je v případě simulátoru asi zbytečné, ne?

Tak jako tak, přesun čísla z jednoho registru do druhého nesmí způsobit nesmyslný výsledek...
Uživatelský avatar
josefhajek
Příspěvky: 89
Registrován: 07 lis 2011, 00:00

#6 Příspěvek od josefhajek »

Tak už to šlape jak má :)
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#7 Příspěvek od procesor »

Co si zmenil?
Aký simulátor používaš?
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“