Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   669 / 1320
(#) trudnai válasza vilmosd hozzászólására (») Feb 9, 2010 /
 
pff
  1. #include "flex_lcd.c"

Az ilyeneken ki tudok akadni (mar bocsanat!)
(#) potyo válasza trudnai hozzászólására (») Feb 10, 2010 /
 
Idézet:
„Az ilyeneken ki tudok akadni (mar bocsanat!)”


Olyan érzése van az embernek, mintha csak akkor olvasnák a témát, amikor valami problémájuk akad? Link
(#) trudnai válasza potyo hozzászólására (») Feb 10, 2010 /
 
Sokszor meg akkor sem ...
(#) icserny válasza vilmosd hozzászólására (») Feb 10, 2010 /
 
A flex_lcd20x4.c elég tömör kódra sikeredett! (0 bytes)
(#) vicsys válasza icserny hozzászólására (») Feb 10, 2010 /
 
Akkor viszont nyugodtan lehet include-olni...
(#) nyarfa válasza potyo hozzászólására (») Feb 10, 2010 /
 
Elnézést ha vitát kavartam, de elég régóta olvasom a különböző témákat, csak eddig nekem nem volt mondanivalóm. Mindenki más és más stílusú írásmódot (lásd kisbetű-nagybetű) használ, és másképp gondolkodik. Remélem én is elérem azt, hogy olyan vérprofi legyek a témában, hogy oszthassam az észt a kezdőknek. De addig légyszi nézzétek el a hibáimat majd igyekszem felnőni hozzátok.
(#) vicsys válasza nyarfa hozzászólására (») Feb 10, 2010 /
 
Semmi gond! Nem ugrottunk a torkodnak, csak viccelődünk.
Igen, a többiek is az várják már, hogy "vérprofi" legyél és Te adj tanácsot. Addig is olvass a C nyelvről magyar könyveket. Sok-sok alap dolog fog a helyére kerülni!
(#) nyarfa válasza vicsys hozzászólására (») Feb 10, 2010 /
 
Szivesen vennék egy-két ebook-ot a témában ha van neked. Egyébként agyrémnek tűnik pc programozásból pic-re áttérni. Itt a egy kicsit (sokkal) alacsonyabb szinten kell gondolkodni. A kézi vezérelt regiszter buzera meg az, hogy egy "varázsló" nem rendezi le teljessen a portokat is meg mindent ami működőképessé teszi, na ezt megszokni mókás lesz de nem lehetetlen. Kezdtem ellustulni, de ez felébreszt a tespedésből itt gondolkodni is kell
(#) watt válasza nyarfa hozzászólására (») Feb 10, 2010 /
 
Idézet:
„Egyébként agyrémnek tűnik pc programozásból pic-re áttérni.”

Ez azért van, mert ez egy elektronikai alkatrész.
(#) vicsys válasza nyarfa hozzászólására (») Feb 10, 2010 / 1
 
Háááát, biztos van ebook is... Én anno elbattyogtam a könyvtárba és kértem magyar nyelvű könyvet a C programozásról,- kezdőknek. Otthon meg szépen kipróbáltam a mintafeladatokat. (és örültem, mint majom a méteres farkának...) Az alapok elsajátításához elégséges egy ANSI-s C könyv. Egyébként, ha szimpatikus a CCS C, akkor innen tölthetsz dokut.:
Bővebben: Link
Bővebben: Link2
Ez pedig egy C tutor:
Bővebben: Link3
(#) icserny válasza nyarfa hozzászólására (») Feb 10, 2010 / 1
 
Idézet:
„Szivesen vennék egy-két ebook-ot a témában”

"Kérjetek és adatik néktek, keressetek és találtok"
Bauer P.: C programozás elektronikus jegyzet
PIC programozás C nyelven - CCS
(#) vilmosd válasza icserny hozzászólására (») Feb 10, 2010 / 1
 
Igy mar jobb .
Udv Vili
(#) vilmosd válasza potyo hozzászólására (») Feb 10, 2010 /
 
Hali
Mar bocs, de ha megnezed a CCS peldajait sokban igy van includolva a masik C file. Ezt a peldat a CCS forumrol masoltam be 1 az 1-ben.
Masik
En meg nem sokat fordultam a forumhoz a problemajaimmal legfeljebb akkor irok ha segiteni tudok valamiben.
Udv Vili
(#) icserny válasza vilmosd hozzászólására (») Feb 10, 2010 /
 
Már csak azt nem értem, hogy a void lcd_putc(char c) {} deklarációval hogy fér össze ez a hívás?
  1. lcd_putc("\fHello World\n");
(#) vicsys válasza icserny hozzászólására (») Feb 10, 2010 /
 
Na, most megzavartál. Pusztán valamiféle programozási perverzióból fakadóan kérdezem meg, hogy ennek a sornak mi értelme lenne...? (Taníts mester!)
(#) MPi-c válasza icserny hozzászólására (») Feb 10, 2010 /
 
Ránézésre nem passzol, de mégis működik, de hát tudjuk, hogy a ccs másban sem "szabványos".
(#) nyarfa válasza icserny hozzászólására (») Feb 10, 2010 /
 
Nos nem tudom mi a különbség az általatok vitatott dolgokban, de tény, hogy tegnap este ez a példa egy az egybe kimásolva működött. Pont azon vagyok, hogy kielemezzem és megértsem az egésszet. Egyébként most ti olyan dologról vitatkoztok aminek elvileg nem kéne működni?
(#) MPi-c válasza nyarfa hozzászólására (») Feb 10, 2010 /
 
Nem hiszem, hogy vita lenne, csak értekezés...
És valóban, a char c-hez nem illik az a paraméterként megadott sok karakter, mégis működik, de csak ccs-ben.
(#) nyarfa válasza MPi-c hozzászólására (») Feb 10, 2010 /
 
Mert mi lenne az "elegáns" megoldás ami szintén működik esetleg és nem csak a ccs-ben?
(#) potyo válasza nyarfa hozzászólására (») Feb 10, 2010 /
 
Alapvetően a függvény megadásánál olyan bejövő adattipust kell neki megadni, ami majd valójában jönni is fog. Az emlíett lcd_putc(char c) {} megadás szerint a függvény egyetlen karaktert vár, miközben a használatakor egy pointert fog kapni, ami egy karaktersor kezdő (nulladik) elemére mutat. Ezért ennek elméletileg nem lenne szabad működnie, a fordítónak hibajelzést kellene adnia.

A megoldás az, hogy csinálni kell olyan függvényt, ami ezt a pointert várja, és a karaktersort írja ki. Pl lcd_puts(char *c) {} azért puts, mert stringet ír ki és a csillag jelenti azt, hogy pointert jön majd ba. És azért char *c, mert amire a pointer mutat, azok karakterek.
(#) nyarfa válasza potyo hozzászólására (») Feb 10, 2010 /
 
Mondjuk így jobb lenne?

  1. void lcd_putc(char *c)
  2. {
  3.  for(i=0; i < sizeof(*c); i++)
  4.    {
  5.         switch(c)
  6.         {
  7.                 case '\f':
  8.                         lcd_send_byte(0,1);
  9.                         delay_ms(2);
  10.                         break;
  11.    
  12.                 case '\n':
  13.                         lcd_gotoxy(1,2);
  14.                         break;
  15.    
  16.                 case '\b':
  17.                         lcd_send_byte(0,0x10);
  18.                         break;
  19.    
  20.                 default:
  21.                         lcd_send_byte(1,c);
  22.                         break;
  23.         }
  24.    }
  25. }
(#) nyarfa hozzászólása Feb 10, 2010 /
 
Hmmm hiányérzetem van.
(#) icserny válasza nyarfa hozzászólására (») Feb 10, 2010 /
 
Ez érdekes, mert nálam le sem fordul! Valami #device sort hiányol az
  1. int8 const LCD_INIT_STRING[4] =

sor előtt, csak nem tudom, hogy abban milyen opciót vár.
(#) nyarfa válasza icserny hozzászólására (») Feb 10, 2010 /
 
Az eredetit fordítottad amit tegnap néztünk?
(#) icserny válasza potyo hozzászólására (») Feb 10, 2010 /
 
Pl lcd_puts(char *c) {}

MCC18-nál kínlódtam ilyesmivel, s külön bonyodalom volt, hogy az lcd_puts("Hello world!\n")-ben szereplő szöveg a programmemóriában tárolódik, emiatt ott lcd_puts(const rom char c*)-nak kellett deklarálni.

(én nem LCD-re írtam, de ez most mindegy-...)
(#) tomi134 hozzászólása Feb 10, 2010 /
 
Sziasztok
Az szeretném kédezni ,hogy a Pic16LF88-at be lehet programozni PicKit2-vel? Probáltam utána nézni de én csak pic16f88-at találta.
Segitségeteket elöre is köszönöm!
(#) icserny válasza nyarfa hozzászólására (») Feb 10, 2010 /
 
Idézet:
„Az eredetit fordítottad amit tegnap néztünk?”

Természetesen! Közben megoldódott a probléma, a CCS és az MPLAB között nem volt zavartalan az együttműködés (technikai okok miatt MPLAB alól futtatom a CCS fordítót). Most lefordult, s a listából látható, hogy hol történik a trükközés.

Tulajdonképpen arra voltam kíváncsi, hogy hol kerül be az iterálás, hiszen az lcd_putc() úgy van megírva, hogy csak egy bájtot küld ki. Nos, az iterálás a főprogramban, az lcd_putc() hívásakor kerül bele, a fordító, úgy tűnik, kitalálja a programozó gondolatát...

Az összehasonlításhoz módosítottam az első hívást, így jobban látszik a különbség, ha összevetjük a második hívással:


  1. .................... lcd_putc('A');
  2. 012C:  MOVLW  41
  3. 012D:  MOVWF  22
  4. 012E:  CALL   0ED
  5. .................... lcd_putc("Line Number 2");
  6. 012F:  CLRF   21
  7. 0130:  MOVF   21,W
  8. 0131:  CALL   00C
  9. 0132:  IORLW  00
  10. 0133:  BTFSC  03.2
  11. 0134:  GOTO   139
  12. 0135:  INCF   21,F
  13. 0136:  MOVWF  22
  14. 0137:  CALL   0ED
  15. 0138:  GOTO   130
  16. ....................
(#) icserny válasza tomi134 hozzászólására (») Feb 10, 2010 /
 
Idézet:
„a Pic16LF88-at be lehet programozni PicKit2-vel?”

A Microchip honlapja szerint igen!

PICkit 2 Device Support List
Midrange Devices
‘LF’ versions of all devices are also supported
* PIC16F84A, 87, 88

Bővebben: Link
(#) cNobody válasza icserny hozzászólására (») Feb 10, 2010 /
 
Biztos már volt szó róla, de most megláttam ezt az LF verziós kérdést, és azt szeretném kérdezni hogy mit jelent az L betű az LF-ben? Low power?

Az F-et tudom hogy FLASH-et jelent, de az L-et nem.
(#) potyo válasza cNobody hozzászólására (») Feb 10, 2010 /
 
Alapvetően alacsonyabb feszültségről is működik. De a pontos eltérések az adatlapban megvannak, keresd az LF jelzést az electrical characteristics táblázataiban.
Következő: »»   669 / 1320
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem