[elektro] C18... csak megkérdem.

Skandar Graun sgraun at gmail.com
Sun Sep 28 19:41:14 CEST 2014


Csak ebben a projectben van syntax error.
Köszönöm az utalást a C könyvre, de jelenleg nem ez a problémám lényege,
csak mellékes kérdés volt.
Ugyanettől a fájltól a fordító a másik projectben nem akad ki.
A "hibás" sor környezete:

#define clrscr 1

#define PARAM_SCLASS auto
#define MEM_MODEL far  /* Change this to near for small memory model */

/* OpenXLCD
 * Configures I/O pins for external LCD
 */
void OpenXLCD(PARAM_SCLASS unsigned char);

/* SetCGRamAddr
 * Sets the character generator address
 */
void SetCGRamAddr(PARAM_SCLASS unsigned char);

/* SetDDRamAddr
 * Sets the display data address
 */
void SetDDRamAddr(PARAM_SCLASS unsigned char);

/* BusyXLCD
 * Returns the busy status of the LCD
 */
unsigned char BusyXLCD(void);


Egyébként ez a microchip saját lcd kezelő rutinsora, nem a netről letöltött.
Ha az "openXLCD" sort kiremelem, akkor a következő void kezdetű sorra ad
hibát.
És igen, large memory model-t használok.

2014. szeptember 28. 19:20 Ágó István írta, <ago.istvan at gmail.com>:

> Nézd meg, nincs-e valami láthatatlan karakter a fájlban, amitől esetleg
> kiakad a fordító. Mindkét projektben syntax errort ad mostmár, vagy csak
> egyikben? Töltsd fel az xlcd.h-t pastebin-re, hogy mi is megnézhessük.
> Valahol előző sorban lehet a hiba egyébként szerintem. Akár ha ez az első
> nem komment tartalom az xlcd.h fájlban, akkor abban a fájlban is lehet a
> hiba, ahová includolod az xlcd.h fájlt
>
> Egyébként a header fájlban nem kötelező a paraméternek változónevet adni.
> Elég csak a típus, hogy a fordító/linker tudja, milyen típust vár a
> függvény. A .c fájlban kell csak a változónév, hogy tudd a függvény
> törzsében használni.
>
> Skandar Graun <sgraun at gmail.com> ezt írta (2014. szeptember 28.,
> vasárnap):
>
> > 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]
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list