RE: Návrch programu pro PIC16F628

jiri@bezstarosti.cz jiri@bezstarosti.cz
Středa Červen 2 19:34:40 CEST 2004


>A taky zde neni patrno jestli volane procedury nuluji priznakovy bit daneho
preruseni.

Toto je velice zasadni otazka. Pokud treba v teto casti kodu:

	btfss INTCON,RBIF ; RB7..RB4
	goto $+5
	btfsc W,4  ; FANCTRL1
	call IH_FANCTRL1 ; prozatím neimplementováno
	btfsc W,5  ; FANCTRL2
	call IH_FANCTRL2 ; prozatím neimplementováno

mate jako podprogram IH_FANCTRL1 zatim jen nejaky RETURN, cimz zavani to ze
to neni prozatim implementovano a nikde nesmaznete INTCON,RBIF, pak se po
ukonceni podprogramu preruseni od nej vyvola preruseni dalsi a bude to
prerusovat tak dlouho, dokud jen nevynulujete.

Dale:
	movlw PORTB  ; aktualní PORTB -> W

neudela uplne co si myslim ze jste myslel tou poznamkou, ale naplni W
adresou PORTB. Pokud budete chtit nabrat z PORTB, pak bude lepe pouzit:

	movf	PORTB,W

Navic to nabrani hodnoty z PORTB zrusi tem "mysmas" co vznika pri nastaveni
RBIF a dovoli Vam jej vubec smazat :).

Dale by bylo fajn si odlozit tu nabranou hodnotu z portu jeste nekam mimo W,
protoze ty podprogramy co volate dale, treba ohledne prijmu ze seriaku budou
W celkem jiste vyzadovat, nebo zpracujte ten port jako prvni. Je mi jasne,
ze ten PORTB se snazite sliznout co nejdrive, tak si po tom nabrani do W tu
hodnotu z W proste odlozte do nejakeho TMP registru, pokud chcete ten port
obslouzit treba nutne z nejakeho duvodu az jako posledni.

	btfsc W,4

je pak nesmysl. Pro btfsc se W neda pouzit, nebo alespon ne u PIC16, ale az
u PIC18 a W se pak pise jako WREG, protoze PIC16 jej nemaji mapovan do
pameti dat, ale uplne mimo, takze instrukce btfsc do nej proste nemuze a pro
test bitu v tom W si zase bud musite prehodit to W do nejakeho registru v
pameti, nebo pokud jej prehazovat nehodlate a setrite treba pameti dat, pak
to lze udelat:

	andlw B'00010000'
	btfss	STATUS,Z
	call IH_FANCTRL1

cimz se call preskoci, pokud je ve ctvrtem bitu W 0 a call se provede, pokud
v nem nula neni a tedy neni vysledek nula a STATUS,Z se nenastavil :).

Vice jsem to neprochazel, jen ted prolit vocima. Rovnou se omlouvam ze pisu
az ted, docela jsem si dnes uzival s GCC - fakt to C nemusim, ale ted musim
:))).

Mimo nejste, to bude dobry.

--
Jiri Bezstarosti



Další informace o konferenci Hw-list