Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
 
Témaindító: G-Lex, idő: Jan 9, 2006
Lapozás: OK   1261 / 1261
(#) Droot válasza pajti2 hozzászólására (») Pé, 14:52 /
 
Olvass vissza, pontos kijelző típus és PIC típus is van említva.
(#) tomi52 hozzászólása Szo, 19:23 /
 
Napok óta guglizok, leírásokat próbálok találni a makrózásról. Amit meg tudtam csinálni:
  1. #define RB0 IOPORT_B, BIT_0
  2. #define RB1 IOPORT_B, BIT_1
  3. ........
  4. #define LCD_E   RB0
  5. .......
  6. PORTSetBits(LCD_E)// ezt teljesen jól kifejti:
  7. PORTSetBits(IOPORT_B, (1 << 0));   // erre

Azt nem tudom megcsinálni, és a talált leírásokból azt sem tudom kiokoskodni, hogy nem lehet megcsinálni, vagy csak én nem tudom a következőt:
  1. PORTSetBits(RB0|RB1);   // hogy ezt
  2. PORTSetBits(IOPORT_B, (1 << 0)|(1 << 1))  // erre fejtse ki
(#) pajti2 válasza tomi52 hozzászólására (») Szo, 22:26 /
 
Azt valószínűleg azért nem tudod megcsinálni, mert logikailag is eltérőek. Az egyik esetben egy függvényed van 1 bemenő értékkel, a másik esetben meg 2 bemenő értékkel. Kicsit nem stimmel a paraméter szám. Ha meg is csinálod, egy illogikátlan valamit kapsz. De ha mégis jó lenne neked az bármire, tessék egy tipp:
  1. #define PORTSetBits(RB0|RB1); PORTSetBits(IOPORT_B,(1<<0)|(1<<1))
A hozzászólás módosítva: Szo, 22:28
(#) tomi52 válasza pajti2 hozzászólására (») Szo, 23:28 /
 
Ilyen formában valóban nem ér semmit, de ezek szerint másképp meg nem lehet megcsinálni. Kár. Itt nem írtam be újra, de ehhez is tartoznak az előző, működő példa kezdő sorai. A cél az lenne, hogy az általánosnak szánt program részekbe (most épp karakteres LCD kezelés) ne legyenek fixen beégetve a lábak. Hogy kell-e olyan, ahol több lábat lenne jó egyszerre megadni, még nem tudom, csak gondoltam, ha meg lehet csinálni, miért ne.
(#) Wezuv válasza tomi52 hozzászólására (») Vas, 8:34 /
 
Meg lehet csinálni, nézd meg a harmony-ban hogyan csinálják. Annál egyszerűbben nem lehet, mert akkor ők is úgy csinálták volna. (De lehet, hogy nem értem mit akarsz...)
A hozzászólás módosítva: Vas, 8:37
(#) pajti2 válasza tomi52 hozzászólására (») Vas, 11:05 /
 
Preprocesszor tippnek: Bővebben: Link

A macrok felé kezdtél el kacsintgatni, de nem biztos, hogy szeretni fogod őket. Néha segítség, de ha túlzásba viszed a felhasználásukat, az átláthatósági és újrahasznosíthatósági álom programozói rémálommá válik végül. Jobban járnál konkrét kibontott és rendesebben kommentelt program részletekkel 8 biten, vagy függvényekkel 32 biten.
(#) rolandgw válasza tomi52 hozzászólására (») Vas, 17:30 /
 
Nem PIC, de ebben a tutorial-ban találsz egy csomó makrózást LCD-vel kapcsolatban.
Bővebben: Link
(#) benjami válasza tomi52 hozzászólására (») 9:20 /
 
Én ilyen módon szoktam megoldani (C18-al kicsit máshogy kell, mert az nem eszi meg ezt):
  1. #define LCD_E                 B, 0
  2. ...
  3. #define TRIS_(p, m)           TRIS ## p ## bits.TRIS ## p ## m
  4. #define LAT_(p, m)            LAT ## p ## bits.LAT ## p ## m
  5. #define PORT_(p, m)           PORT ## p ## bits.R ## p ## m
  6.  
  7. #define SETDIRIN(x)           TRIS_(x) = 1
  8. #define SETDIROUT(x)          TRIS_(x) = 0
  9. #define SETBIT(x)             LAT_(x) = 1
  10. #define CLRBIT(x)             LAT_(x) = 0
  11. #define GETBIT(x)             PORT_(x)
  12. ...
  13. SETDIROUT(LCD_E);
  14. SETBIT(LCD_E);
  15. CLRBIT(LCD_E);
Következő: »»   1261 / 1261
Bejelentkezés

Belépés

Hirdetés
Frissek
2017. Máj, 22. Hé
17:33:44
Jelenleg 422 fő olvassa az oldalt
Online tagok:
Lapoda.hu     XDT.hu     HEStore.hu