[elektro] C18... csak megkérdem.
Nemka
nemka at nemka.hu
Sun Sep 28 19:08:16 CEST 2014
Az auto módosító azt jelenti, hogy ha van rá lehetőség, akkor a
mögötte definiált változót regiszterbe kell tenni, ha nincs, akkor
mehet RAM-ba is. (PIC-nél ennek amúgy nem sok értelme van, kivéve
talán a mikroprocesszor és extendend mikrovezérlő módokat ismerő
típusokat.)
Előfordulhat, hogy a fordító az adott processzornál ezt nem támogatja,
ezért jön a syntax error. (Már ha tényleg az adott sorra vonatkozik és
nem valamelyik előző sorban maradt el pl. a pontosvessző.)
A PARAM_SCLASS definiálásánál csak annyi történik, hogy a PARAM_SCLASS
"értéke" auto lesz, így a fordító a PARAM_SCLASS unsigned char-t
"átalakítja" auto unsigned char-ra.
Vagyis, ha az auto zavarja a fordítót, akkor töröld a PARAM_SCLASS-t
az unsigned char elől. Ennek hatására az adott változót a RAM-ban
helyezi el a fordító.
Érdemes lenne egy ANSI C könyvet elolvasnod, mert akkor nem kapnál
hülyét az ilyenektől, hanem rögtön értenéd, hogy mi miért történik.
Nemka
---> http://www.nemka.hu <---
> 2014.09.28. 18:50 Skandar Graun:
> Sziasztok!
> Azért ilyenkor hülyét akarok kapni.
> Van egy project, 18f452 a proci.
> Tökéletesen fordul, írom, növekszik.
> Ez kommunikálna egy másik procival, ezért csináltam egy másik projectet.
> Ez 18F4431-es proci.
> A panelok ugyanazok, végülis a kommunikációt kezdeném tesztelni.
> Soros komm, LCD-re kiíratás.
> Gondoltam, a meglevő project forrásfájlaiból el tudok indulni, módosítva a
> procinak megfelelő dolgokat, aztán majd ez is fejlődni kezd.
> De:
> Az xlcd.h filében syntax errort adott a fordító, mégpedig a következő sorra:
> void OpenXLCD(PARAM_SCLASS unsigned char);
> A param_sclass-ra a következő vonatkozik:
> #define PARAM_SCLASS auto
> Bár ezt a részt nem éppen értem (miért nem kell itt változónév és mit takar
> az auto), de mivel az előző (és még egy jópár) projectben nem volt vele
> gondom, nem foglalkoztam vele.
> Az előző projectben teljesen jól fordult, itt syntax error...
> Ami érdekes, próbáltam átírni a param_sclass-t auto-ra, adtam neki sima
> deklarációt is.
> void OpenXLCD(unsigned char lcdtype);
> Az xlcd.c filében egyébként így van deklarálva.
> Mindenképp ugyanez volt a hiba.
> Ha kiremeltem ezt a sort, akkor a következő void kezdetű sora írt syntax
> errort.
> Világosítsatok fel, kérlek, mi a hiba!
> Köszi előre is.
> -----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list