Segitseget kerek PIC programhoz

Borbas, Imre Imre_Borbas at or.mxim.com
Wed Aug 6 23:46:54 CEST 2003


Hali!

> -----Original Message-----
> From: Csihar Zoltan
> Subject: Segitseget kerek PIC programhoz
> 
> Bocs, ez a melleklet, csak nem ment at! MPASM-ben nincs igy 
> szetcsuszva.
> 
[...] 		
> #define	JEL		D'06'	;kezdoertekrk: JEL
> #define	SZUNET	D'04'	;SZUNET
> #define	IDO		D'255';IDO

Ez idaig OK lenne, ha az IDO-t nem valtozokent akarnad hasznalni. A #define
azt csinalja, hogy ahol az elso argumentumot megtalalja a fordito, ott
behelyettesiti a masodikat, magyaran IDO helyett mindenhova D'255'-ot
helyettesit. Ezert a kovetkezo blokk nem ertelmes, mert csak egy argumentuma
van a #define-oknak:

> #define	JEL1		;ciklusvaltozok:JEL1
> #define	SZUNET1	;SZUNET1
> #define	IDO1		;IDO1

Ezeket szinten konstanskent definialod, pedig valtozok:

> #define	CIKL1	H'FF'
> #define	CIKL2	H'FF'
> #define	CIKL3	H'FF'
> #define	CIKL4	H'FF'

Egy memoriacimet kell megadni nekik, ahol tarolni akarod a valtozok
ertekeit, tehat:

#define	RAM		H'20'
#define	JEL1		RAM+0		;ciklusvaltozok:JEL1
#define	SZUNET1	RAM+1		;SZUNET1
#define	IDO1		RAM+2		;IDO1
#define	CIKL1		RAM+3
#define	CIKL2		RAM+4
#define	CIKL3		RAM+5
#define	CIKL4		RAM+6
#define	IDO		RAM+7		;IDO 

A RAM az felhasznalo altal szabadon felhasznalhato memoria kezdete, ez 0x20
az adatlap 2-2 abraja alapjan. Ezek utan fel kell tolteni ertekkel ezeket a
memoriahelyeket, azaz erteket kell adni a valtozoknak. Ezt celszeruen az
INIT reszben tehetjuk meg:
 	
> INIT		
			movlw		H'FF'
			movwf	CIKL1
			movwf	CIKL2
			movwf	CIKL3
			movwf	CIKL4
			movwf	IDO	

ez w-be FF-et tolt, majd ezt bemasolja mind az ot valtozoba. Ha kulonbozo
erteket akarsz bele tolteni, akkor mindegyik movwf ele kell egy movlw a
megfelelo ertekkel.
Aztan innen mar minden korrektnek tunik, legalabbis lefordul es lefut.

Osszefoglalva: az eredeti programbol az elso ket #define sor marad, a tobbit
az altalam irtra ki kell cserelni, az INIT reszbe az altalam irt resz
beszurando.

Sajnos azt nem tudom, hogy mindent ugy csinal-e, ahogy kene, de az MPLAB-ban
ezt leellenorizheted. 1 db message-t ad, ez arra figyelmeztet, hogy a TRISIO
a Bank1-ben van, ellenorizd, hogy ez korrekt-e. Az adatlap szerint igen.

Az idozitesre sokkal kenyelmesebb es pontosabb mod a timerek hasznalata. Az
adatlapban is van sokminden rola, de a Microchip weboldalan szerintem
minimum 30 application note foglalkozik vele.

Imi


More information about the Elektro mailing list