Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   320 / 1210
(#) icserny válasza bkati hozzászólására (») Okt 23, 2012 /
 
Idézet:
„18F2550-en lehet egyszerre használni az USB-t és a soros portot?”
Igen, lehet.
Idézet:
„jön soros porton az adat 250 kbit/s-mal”
Ehhez a sebességhez én inkább egy CP2102 vagy PL2303 alapú USB-UART TTL átalakítót használnék (E-bay). A Microchip mikrovezérlőknek nincs saját USB meghajtó programja, s a Windows usbser.sys meghajtó nem túl hatékony.
(#) bkati válasza icserny hozzászólására (») Okt 23, 2012 /
 
Eredetileg én is USB-soros átalakítót akartam használni, de megpróbáltam egy régebbi FTDI IC-vel épített modullal, és 56k felett már annyira torzult a jel, hogy nem ment a soros átvitel.
Nem lehet őket itthon is kapni? Az eddigi külföldi rendeléseim fele nem jött meg (ebay, DX). Bár, ahogy nézem, pár dollár csak, annyit megéri kockáztatni. Köszönöm a tippet.
(#) icserny válasza bkati hozzászólására (») Okt 23, 2012 /
 
Idézet:
„Nem lehet őket itthon is kapni?”
Amit lehet, azt is aranyáron...
Idézet:
„Az eddigi külföldi rendeléseim fele nem jött meg”
Sajnálom, hogy ilyen rossz tapasztalataid vannak! Nekem eddig minden megjött.
(#) bkati válasza icserny hozzászólására (») Okt 23, 2012 /
 
Megpróbálkozom én is egy ebay-es CP2102-vel, mert az összeszerelt panel (csatlakozókkal) + szállítás kerül 2.63 USD-be.
(#) Hp41C válasza bkati hozzászólására (») Okt 24, 2012 /
 
A HeStore -bő nem lenne jó?
(#) icserny válasza Hp41C hozzászólására (») Okt 24, 2012 /
 
De, nagyon jó volna, ha nem csak a méregdrága FTDI kiteket lehetne kapni... (megszerelt kitről volt szó, nem IC-ről)
(#) Karoly1970 hozzászólása Okt 24, 2012 /
 
Sziasztok!
Azt hiszem ez lesz a megfelelő topic a kérdésemhez. Eddig AVR-rel már dolgoztam arduinoban, de most kaptam ajándékba egy rakás PIC16C84-et, és nem akarnám, hogy kárba vesszenek, ezért megpróbálnám a következő projektjeimhez ezeket felhasználni.

Nem vagyok otthonos még a pic-es témákban. de úgy tudom, hogy ez egy régi típusú PIC, tudna esetleg valaki ajánlani hozzá USB-s programozót és C-szerű valamilyen programot? Vagy akár soros portos programozó is jó, ami a lényeg az az, hogy ne assembly-ben kelljen programoznom, mert az nem megy....
(#) bkati válasza Karoly1970 hozzászólására (») Okt 24, 2012 /
 
Ha C-ben akarsz programozni, akkor vegyél egy olcsó 18F-es PIC-et, és azon gyakorolj. A 18C84-nek 36 bájt RAM-ja van, és 64 bájt adatmemóriája, szerintem ez hamar kevés lesz C-ben.
(#) Karoly1970 válasza bkati hozzászólására (») Okt 24, 2012 /
 
Értem, igazából nem gyakorolni akarok, az arduino ahhoz eddig tökéletesen bevált nekem az egyszerű projektjeimhez, hanem csak szeretném valamire felhasználni ezeket a PIC-eket: ha már vannak, akkor ne heverjenek kihasználatlanul.
(#) icserny válasza Karoly1970 hozzászólására (») Okt 24, 2012 /
 
Ez olyan, mintha a fiókban hányódó gombokhoz akarnál télikabátot venni. Csak azért, hogy a gombok fel legyenek használva, nem éri meg! Pénz, idő, fáradtság... S ezek igen korlátozottan használható vezérlők.
(#) Gabó hozzászólása Okt 24, 2012 /
 
Olyan kérdésem lenne, hogy a C programkódot megírom mikroC PRO for PIC-be és itt ugye le is fordítja 1 hex fájlra, de mivel a free verzió van meg ezt nem tudom a picbe írni. Erre ugye adtak a pickit3hoz mplabot amivel bele tudom írni. Na a hiba ott kezdődik, hogy megírom a mikroC PRO for PICbe lefordíttatom, proteusba tesztelem a hexet, ott lefut aminek kell. Ha azt a hexet mplabbal beírom a picbe akkor a kijelzőn csak 2 nagyon halvány csík jelenik meg a 4 soros kijelzőn. Mind a kettőbe be van állítva a pic típusa, órajele. A kérdésem az lenne, hogy isis alatt miért megy a fizikális beírásnál meg nem?

  1. // Lcd pinout settings
  2. sbit LCD_RS at RE0_bit;
  3. sbit LCD_EN at RE1_bit;
  4. sbit LCD_D0 at RD0_bit;
  5. sbit LCD_D1 at RD1_bit;
  6. sbit LCD_D2 at RD2_bit;
  7. sbit LCD_D3 at RD3_bit;
  8. sbit LCD_D4 at RD4_bit;
  9. sbit LCD_D5 at RD5_bit;
  10. sbit LCD_D6 at RD6_bit;
  11. sbit LCD_D7 at RD7_bit;
  12.  
  13. // Pin direction
  14. sbit LCD_RS_Direction at TRISE0_bit;
  15. sbit LCD_EN_Direction at TRISE1_bit;
  16. sbit LCD_D0_Direction at TRISD0_bit;
  17. sbit LCD_D1_Direction at TRISD1_bit;
  18. sbit LCD_D2_Direction at TRISD2_bit;
  19. sbit LCD_D3_Direction at TRISD3_bit;
  20. sbit LCD_D4_Direction at TRISD4_bit;
  21. sbit LCD_D5_Direction at TRISD5_bit;
  22. sbit LCD_D6_Direction at TRISD6_bit;
  23. sbit LCD_D7_Direction at TRISD7_bit;
  24.  
  25.  
  26. char txt1[] = "Teszt program";
  27. char txt2[] = "Sor 1";
  28. char txt3[] = "Sor 2";
  29. char txt4[] = "Sor 3";
  30. char txt5[] = "Sor 4";
  31. char txt6[] = "Sor 5";
  32. char txt7[] = "Sor 6";
  33. char txt8[] = "Sor 7";
  34. char txt9[] = "Vege";
  35.  
  36. char i;                            
  37.  
  38. void Move_Delay() {                
  39.   Delay_ms(500);                  
  40. }
  41.  
  42. void main(){
  43.  
  44.  
  45.   Lcd_Init();                      
  46.  
  47.   Lcd_Cmd(_LCD_CLEAR);              
  48.   Lcd_Cmd(_LCD_CURSOR_OFF);      
  49.   Lcd_Out(1,3,txt1);              
  50.   Lcd_Out(2,6,txt2);
  51.   Lcd_Out(3,6,txt3);
  52.   Lcd_Out(4,6,txt4);
  53.  
  54. }


Itt a mikroC PRO for PIC be írt kód.
A kód a mikroC PRO for PIC leírásába van, csak kibővítettem az lcd lábait. A pic az 18f877es, de ezt is így választottam ki.
A hozzászólás módosítva: Okt 24, 2012
(#) icserny válasza Gabó hozzászólására (») Okt 24, 2012 /
 
Ne az MPLAB-bal írd be, hanem a PICkit3 saját letöltpő programjával. Ha a mikorvezérlőn nem fut jól a kód, akkor valószínűleg a konfigurációs bitek beállítására kell több figyelmet fordítani. Meg a mikrovezérlő Errata-jára (nem minden működik úgy, ahogy megálmodták...)
(#) Gabó válasza icserny hozzászólására (») Okt 24, 2012 /
 
A pickit3nak melyik a saját letöltő programja?
(#) matheattila válasza Gabó hozzászólására (») Okt 24, 2012 /
 
Üdv, ha csak ennyi az egész program akkor ne csodálkozz, hogy nem megy, mert nem hívtad meg sehol azt a bizonyos Move_Delay() függvényt így szinte semmi késleltetés nincs a sorok kiiratása között így olyan gyorsan történik minden, hogy nem látsz semmit.
Mindegyik Lcd_Out(); sor után szúrd be a move_delay függvényedet (vagy csak simán a delay_ms(500); -at ez fél másodperces késleltetést jelent, tehetsz többet is).
Az elegánsabb módszer az, hogy a 47. és 52. sor (az LCD_Init utáni részt) közötti részt egy végtelen ciklusba teszed: while(1){...}. Ellenőrizd le hogy az LCD kijelző kivezetései megfelelően vannak bekötve (elég csak a 4 felső adatbitet használni (d7-d4).
A mikroC-ben megfelelően van beállítva minden a Project/Edit Project menüben (a build type "Release" legyen)?
A free verzió csak abban különbözik, hogy maximum 2kb program kódot (kb 300 sor) tud kompilálni, más minden normálisan működik.
A hozzászólás módosítva: Okt 24, 2012
(#) nedudgi válasza Gabó hozzászólására (») Okt 24, 2012 /
 
"C:\Program Files\Microchip\PICkit 3\PICkit 3.exe"
(#) Gabó válasza nedudgi hozzászólására (») Okt 24, 2012 /
 
Nálam nincs ilyen a Microchip mappájába
(#) nedudgi válasza Gabó hozzászólására (») Okt 25, 2012 /
 
Melyik MPLab verziót használod? Ismételd meg a telepítést.
A hozzászólás módosítva: Okt 25, 2012
(#) bkati válasza Gabó hozzászólására (») Okt 25, 2012 /
 
Ha jól értem, szoftveres szimulációnál megy, de a tényleges hardveren nem. Akkor ezt simán okozgatja az is, hogy az LCD kontrasztja nincs beállítva. (Általában a 3-as láb szokott lenni.)
(#) icserny válasza Gabó hozzászólására (») Okt 25, 2012 /
 
Idézet:
„A pickit3nak melyik a saját letöltő programja?”
A
http://www.microchip.com/pickit3 címen nézz körül. Nekem nincs PICkit3 programozóm, így csak tippelni tudok, hogy a Pickit3 GUI and Scripting Tool lesz az.
(#) nedudgi válasza icserny hozzászólására (») Okt 25, 2012 /
 
Ott csak egy béta verzió van. Igaz, én sem találok mást, ezért javasoltam az MPLab IDE újratelepítését.
(#) Gabó válasza nedudgi hozzászólására (») Okt 25, 2012 /
 
Az mplabból a 8.87est használom.
Este újra átnézem a bekötést, hátha ott van valami.
Az lcd kontrasztot állítottam, mert azt hittem először, hogy az a baja.
(#) kissi válasza Gabó hozzászólására (») Okt 25, 2012 /
 
Szia!

Szerintem 2 ok lehet, amit a szimulátor nem tesztel (tökéletesen) vagy nem tud:
- a késleltetések,
- fizikai bekötés ( + kontraszt ).

Szerintem ezeket nézd meg, mert ugyan lehetne szimulátor hiba is, de nem olvastam ilyen jellegű hibát a Proteusban.

Steve
(#) matheattila válasza Gabó hozzászólására (») Okt 25, 2012 /
 
Ezt olvastad? Bővebben: Link
(#) tom75 hozzászólása Okt 25, 2012 /
 
Tudnátok ajánlani valami olyan leírést amiből meglehetne tanulni a kezdeti lépéseket a pic programozást c nyelven.
google ba már nézegettem de nem igazán értem mikor és hol kell alkalmazni a void main {} függvényt.

köszi Tamás
(#) Gabó válasza matheattila hozzászólására (») Okt 25, 2012 /
 
Igen olvastam, és már át is írtam a javaslatokat. Ma este átalakítom a 4bitesre, és azzal is kipróbálom.
(#) icserny válasza tom75 hozzászólására (») Okt 25, 2012 /
 
Minden C alkalmazói programban kell, hogy legyen egy és csak egy main nevű függvény. A linker a lefordított object kódok összecsatolásakor beiktat még egy "startup" kódot ami némi előkészítő lépések megtétele után (pl. betölti a változókba a kezdeti értékeket) meghívja a main függvényt.

A számítógépekkel ellentétben itt a main függvényből nincs is értelme visszatérni, ezért annak visszatérési értéke sincs. Ezt jelzi a main neve előtti void szó.

A main függvényben többnyire egy inicializáló rész és egy végtelen ciklus található. Ez utóbbi biztosítja, hogy a program "ne hagyja abba" a működést.
(#) Marko Ramiusz hozzászólása Okt 25, 2012 /
 
Sziasztok! EasyPIC6-os, ill. mikroC PRO for PIC programmal kapcsolatban szeretnék kérdéseket feltenni, aki járatos ebben, kérem írjon. Üdv.: Yoe
(#) mekkmesterke válasza tom75 hozzászólására (») Okt 25, 2012 /
 
Én pic-es irodalom gyanánt ajánlanám ezt a könyvet. Minden benne van amire szerintem csak szükséged lehet. A pic-ek működése, felépítése, c nyelven történő programozása. Nagyon jó kis könyv véleményem szerint. Itt-ott fellelhető a neten letölthető verziókban is. Most pontos linket nem találok, de majd keresgélek.
(#) Marko Ramiusz válasza mekkmesterke hozzászólására (») Okt 25, 2012 /
 
Látom félreérted a hozzászólásom. Légyszíves értelmezd újra. Nem a PIC-ek működésével, programozással és a PIC-es irodalommal kapcsolatban kérdeztem, hanem a mikroC PRO for PIC-kel összefüggésben. Az általad említett könyv megvan, szóval szerintem ne keresgélj. Üdv.: Yoe
A hozzászólás módosítva: Okt 25, 2012
(#) icserny válasza Marko Ramiusz hozzászólására (») Okt 25, 2012 /
 
Szerintem nem neked válaszolt.
Következő: »»   320 / 1210
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