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