Fórum témák

» Több friss téma
Fórum » PIC programozása C nyelven, C-Compiler
 
Témaindító: histu1985, idő: Feb 11, 2006
Témakörök:
Lapozás: OK   144 / 144
(#) benjami válasza tomi52 hozzászólására (») Szept 11, 2019 /
 
Azt nem írtad melyik fordítóhoz (mert eltérnek egymástól a megvalósíthatóság szempontjából).
  1. #define LED           A, 3
  2.  
  3. #define TRISBIT(p, m)         TRIS ## p ## bits.TRIS ## p ## m
  4. #define LATBIT(p, m)          LAT ## p ## bits.LAT ## p ## m
  5. #define PORTBIT(p, m)         PORT ## p ## bits.R ## p ## m
  6. #define GPIOX_MODEPININ(x)    TRISBIT(x) = 1
  7. #define GPIOX_MODEPINOUT(x)   TRISBIT(x) = 0
  8. #define GPIOX_SETBIT(x)       LATBIT(x) = 1
  9. #define GPIOX_CLRBIT(x)       LATBIT(x) = 0
  10. #define GPIOX_LATBIT(x)       LATBIT(x)
  11. #define GPIOX_GETBIT(x)       PORTBIT(x)
  12.  
  13. GPIOX_MODEPINOUT(LED); // LED = kimenet
  14. GPIOX_CLRBIT(LED); // LED = 0
  15. GPIOX_SETBIT(LED); // LED = 1
A hozzászólás módosítva: Szept 11, 2019
(#) tomi52 válasza benjami hozzászólására (») Szept 11, 2019 /
 
Köszi, kielemzem.

Amit én raktam össze, az is működik, csak paraméterként nem lehet használni. Nem tudom, az általad beírtat lehet-e?

Valóban nem írtam a környezetet, mert úgy gondoltam, a makró kérdés minden C-re vonatkozik, nem csak PIC fejlesztő környezetre.

A konfig A-Z-ig: Lenovo T400 notebook, Debian 10 oprendszer, MPLAB-X V5.25, XC32 V2.30 rátöltve a PIC32 Legacy Peripheral Libraries a PIX32MX procikhoz. De ezzel a makro szöszöléssel már régebben is próbálkoztam.
(#) benjami válasza tomi52 hozzászólására (») Szept 11, 2019 /
 
XC32-t nem használtam (és a közeljövőben jó eséllyel ne is fogom, mert áttértem ARM-re), de az XC8 és az XC16 (meg az ARM GCC is) megeszi a fenti paraméterezési módszert (az kimaradt, hogy a 13-15 sor már valamelyik függvényen belüli felhasználását mutatja). Ha a példában szereplő LED-et pl. az RA3 helyett az RC7 lábra szeretnéd kötni, csak az 1. sort kell megváltoztatni:
  1. #define LED           C, 7
(#) tomi52 válasza benjami hozzászólására (») Szept 12, 2019 /
 
Igen, ezt értem. Csak játszogattam arduinoval is, nem tudom, használtad-e, (ha nem,) ott a pinek kaptak egy-egy számot, azt paraméterként át lehet adni a konstruktornak. Az általad adott szerint persze meg tudom oldani, csak amilyen lökött vagyok, szeretném paraméterként, ahogy az arduinoban. Próbáltam visszakövetni, hogyan működik az I2C1, I2C2, de nem tudom teljesen visszakövetni. Belefutok olyan makróba? változóba? amit sehogy nem találok meg, azt nem tudom a környezet mi módon hozza létre. Sem *.h.ban, *.c-ben, *.cpp nem találom meg.
(#) cross51 válasza superuser hozzászólására (») Szept 12, 2019 / 1
 
A do while re egyszerű a válasz így nem tudod beírni feltétel vizsgálathoz.
(#) benjami válasza tomi52 hozzászólására (») Szept 12, 2019 /
 
Annyira nem foglalkoztam arduino-val, de azt tudom hogy sima számokkal lehet megadni a lábakat. Ha nagy és lassú kódot akarsz gyártani magadnak, akkor PIC-re te magad is megvalósíthatod. Amúgy táblázatban vannak a lábszámokhoz tartozó PORT és láb összerendelések (pins_arduino.h), amit a wiring_digital.c-ban levő pinMode, digitalWrite, digitalRead függvények fognak majd felhasználni.
(#) tomi52 válasza benjami hozzászólására (») Szept 12, 2019 /
 
Nem szeretnék nagy és lassú kódot, épp azért gondoltam makróra. Más módon már megoldottam, de az tényleg behozott plusz kódot, ezt szeretném elkerülni.
Következő: »»   144 / 144
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu