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   479 / 1210
(#) Hp41C válasza Balagemann2031 hozzászólására (») Jan 12, 2014 /
 
A NAK azt jelenti, hogy az I2C slave nem válaszol.
(#) Balagemann2031 válasza Hp41C hozzászólására (») Jan 12, 2014 /
 
Igen sejtettem.. ez elég szomorú, mert a többi szenzorral tudok kommunikálni csak ezzel nem és mind a 4 szenzor egy kis panelon van...
(#) silent15 hozzászólása Jan 12, 2014 /
 
Sziasztok, azt szerentém kérdezni, hogy hogyan tudom használni a 18f2550 pll-ét . Van egy 10Mhz külső kavicsom. Ezt szeretném felszorozni 4 el.

  1. #include <18f2550.h>
  2.  
  3. #fuses H4,NOWDT,NOPROTECT,NOLVP
  4. #use delay(clock=40000000)
  5.  
  6.  
  7. setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
  8.  
  9. void main ()
  10. {
  11.  
  12. }

CSC compillert használok, és mindíg beleköt a H4 fuseba, de nem is vagyok benne biztos, hogy ezt így kéne, valaki fel tudna világosítani?
Köszönöm!
(#) ktamas66 válasza kitartás hozzászólására (») Jan 12, 2014 /
 
Nem lehet, hogy az LCD inicializálás időzítései túl szorosak (főleg a bekapcsolási), esetleg növeld meg. Különben van egyéb jele, hogy fut-e a program (villogtass egy ledet).
(#) matheattila válasza Balagemann2031 hozzászólására (») Jan 12, 2014 /
 
Szia, nem lehet, hogy talán más címe van vagy más sebességen kommunikál? Esetleg próbáld meg csak azt egyedül, addig a többit kapcsold le a vonalakról. Esetleg írj egy programot ami kigenerálja az összes lehetséges I2C címet, majd egyenként kiküldi néhány 10 vagy 100 ms-enként és az első válasz után rögtön megáll és megnézi, hogy melyik cím volt az, ezzel megtudod, hogy mi a címe, ehhez egy LCD-re is szükséged lesz, mert másképp nem tudod hogy mi történik a PIC-ben
Tudom, hogy az adatlapban megadják a címet, de akkor is egy próbát megér...
Annó én egy digitális giroszkóppal szívtam, a gyorsulásmérővel és a compass-al tudott kommunikálni, de a girót nem találta, majd mikor rátettem a szkóp szondát, hogy a szkópon is lássam mi történik akkor megtalálta, ha levettem a szondát akkor megint nem találta, így végül az SDA-GND és SCL-GND közé betettem egy-egy 470pF-os kondit és így már működött szonda nélkül is Tudom, hogy ez butaságnak tűnik, mert a kondi késlelteti/torzítja a jelet de csak így tudtam működésre bírni...
(#) kitartás válasza ktamas66 hozzászólására (») Jan 13, 2014 /
 
Szia!
Nem tudom. Nem időzítettem semmit. A mikropascal gyári LCD libjét használom. Az oszcillátor egy 4Mhz -es
kvarc. A ledes dolgot este kipróbálom.
Köszi.
(#) havranarpi hozzászólása Jan 13, 2014 /
 
Sziasztok!
Elkezdtem tanul a PIC programozást.
Első lépésként megvettem a PIC mikrovezérlők alkalmazástechináka III. című könyvet és megépítettem a HP41C féle égetőt.Egy gond azomban akadt.A könyv mindenüt Explorer 16 Development Board fejlesztőpanelról ír.Egy ilyen fejlesztőpanel elkészíthető házilag is?
Vagy valamilyen más panelt tudnátok ajánlani?
Nem szeretnék olyan sokat kiadni egy ilyen panelért.
(#) icserny válasza havranarpi hozzászólására (») Jan 13, 2014 /
 
Idézet:
„Egy ilyen fejlesztőpanel elkészíthető házilag is?”
Hát persze, amennyiben be vagy rendezkedve a lyukgalvánozptt kétoldalas (vagy többrétegű?) nyomtatott áramkörök elkészítésére. Nekem olcsóbb lenne megvenni.

De ha most kezded az ismerkedést a PIC programozással, akkor szerintem kezdetnek valami egyszerűbb gyakorlópanelt kellene választani.
(#) havranarpi válasza icserny hozzászólására (») Jan 13, 2014 /
 
tehát amikor a könyv írja a <p24fj128ga010.h>
Oda egy másik pic típust választok, olyat pl ami egy egyszerűbb fejlesztőpanelen van?
(#) icserny válasza havranarpi hozzászólására (») Jan 13, 2014 /
 
Ennél sokkal bonyolultabb a helyzet, mivel a könyv egy adott kapcsolást feltételez.
(#) havranarpi válasza icserny hozzászólására (») Jan 13, 2014 /
 
tehát akkor kell az explorer 16 panel
(#) NyariG válasza havranarpi hozzászólására (») Jan 13, 2014 /
 
Szerintem vegyél egy dugdosos panelt meg olvasd el ezt:
Bővebben: Link
meg ezt:
Bővebben: Link
én igy csináltam
Na nem mintha profi lennék....de feleslegesnek tartok egy olyan játszópanelt megvenni. (Bár nem értek hozzá)
Gondolom azért kezdted el a pic-t mert valami célod van vele, valamit meg akarsz csinálni... hat akkor csináld meg, dugdosd össze a panelon programozd fel a pict, nyugodj meg. Javitsd ki a hibákat.
(#) kissi válasza NyariG hozzászólására (») Jan 13, 2014 /
 
Egyetértek !
(#) Balagemann2031 válasza matheattila hozzászólására (») Jan 13, 2014 /
 
Szia! A címek végigpróbálása jó ötlet, de még átnézem jobban az adatlapot, hátha elnéztem valamit.. Sajna nem tudom lecsatolni a vonalról az IC-t, mert az elég bonyolult lenne Egyébként a képen látható modulról van szó, és azon belül is a gyorsulásmérőről.
(#) danydosster hozzászólása Jan 13, 2014 /
 
Sziasztok!
Lehet nem jó helyen kérdezek ilyet, de nem találtam hasonló témát.
Arra lennék kíváncsi hogy távol keletről szeretnék rendelni egy Kit150 PIC programozót.
Ahogyan olvasgattam róla, hobbi célra tökéletes és az általam használni kívánt pic eket tudja is programozni.
Esetleg akik használták már vagy használják tudnának valamilyen véleményt mondani az eszközről? Esetleg olyan oldalt ahol lehetne használtan is venni csak persze Magyarországról.
Előre is köszönöm az infókat
(#) Prendick válasza Balagemann2031 hozzászólására (») Jan 13, 2014 / 1
 
Szia!
Jó eséllyel a 12-es lába le van kötve földre, ezért próbáld ki az alternatív címet is: A6/A7 r/w.
(ADXL345 doksi, 18. oldal)
(#) Prendick válasza danydosster hozzászólására (») Jan 13, 2014 /
 
Jó helyre írtál, de nem jó az elképzelésed. Ez egy elavult programozó, szemlátomást nem fejlesztik évek óta. Azt sem igazán javaslom, hogy azokat a pic-eket használd, amiket támogat. Sokkal jobbak és olcsóbbak is az újak.
Lényegesen jobban jársz, ha megépítesz egy ilyet: Bővebben: Link

Vagy ha még nem megy, az apróban szinte mindig hírdet valaki Pickit-et:
Bővebben: Link
(#) icserny válasza danydosster hozzászólására (») Jan 13, 2014 /
 
Idézet:
„távolkeletről szeretnék rendelni egy Kit150 PIC programozót.”
Én inkább egy PICkit2 vagy PICkit3 klónt vennék. Azokkal az erre alkalmas mikrovezérlőket debugolni (hardveres nyomkövetés) is lehet.

Vásárlás előtt gondosan tájékozódni kell a támogatott mikrovezérlő típusok és gyári szoftvertámogatást illetően. Sajnos, a PICkit2 is kifutott típus, meggondolandó, hogy mire és meddig használható még...
(#) c27 hozzászólása Jan 13, 2014 /
 
Sziasztok!
Valamiért az lcd kijelző egy fekete téglalapot ír ki első karakternek. A programrészlet a mellékletben. Kiírja az 'a' betűt a 2. sorba, de az első sor első karaktere egy fekete téglalap. Ha nem futtatom le csak az inicializálás végéig, a kurzorbeállításig akkor is megjelenik a téglalap.

PROBA4.txt
    
(#) Balagemann2031 válasza Prendick hozzászólására (») Jan 13, 2014 /
 
Szia! Igazad volt, az alternatív címen elértem az IC-t! Köszönöm a segítséget!
(#) icserny válasza c27 hozzászólására (») Jan 13, 2014 /
 
Ez milyen kijelző, miért kell magas szintre állítani az Enable jelet? A HD44780 kompatibilis kijelzőknél EN=0 az alaphelyzet.
(#) ktamas66 válasza c27 hozzászólására (») Jan 13, 2014 /
 
Inicializálás után adj ki egy DISPLAY CLEAR parancsot.
(#) c27 válasza ktamas66 hozzászólására (») Jan 13, 2014 /
 
Ok, bár a belső oszcillátornál nem csinált ilyet.
Az enable alapból 0? Én innen gondoltam, hogy alapból 5V kell neki és 0-nál hajtja végre az utasítást. A kapcsolási rajzon is egy ellenállással fel van húzva 5V-ra és a nyomógombbal kapcsolja 0-ra.
A hozzászólás módosítva: Jan 13, 2014
(#) borvendeg hozzászólása Jan 14, 2014 /
 
Hello!
Nem boldogulok egy PIC12F510 AD-jével.

  1. #include <pic12f510.h>
  2. #include <xc.h>
  3.  
  4. //__CONFIG(LVP_OFF & MCLRE_OFF & FCMEN_OFF & IESO_OFF & CLKOUTEN_OFF & BOREN_OFF & CPD_OFF & CP_OFF &PWRTE_OFF & WDTE_OFF & FOSC_INTOSC & STVREN_OFF & WRT_OFF & PULLEN_OFF);
  5.  
  6. #define _XTAL_FREQ 8000000 //osc freq
  7.  
  8. #define RELE    GPIObits.GP5
  9. #define LED     GPIObits.GP4
  10.  
  11. #define ANS1    ADCON0bits.7
  12. #define ANS0    ADCON0bits.6
  13. #define ADCS1   ADCON0bits.5
  14. #define ADCS0   ADCON0bits.4
  15. #define CHS1    ADCON0bits.3
  16. #define CHS0    ADCON0bits.2
  17. #define GODONE  ADCON0bits.1
  18. #define ADON    ADCON0bits.0
  19.  
  20. void init (void){
  21. TRIS     = 0b00000000;  //mindenki kimenet GP0 bemenet(AD)
  22. ANS1    =       0;                      //an2 bemenet
  23. ANS0    =       1;
  24. CHS1    =       1;
  25. CHS0    =       0;
  26.  
  27.  
  28. }
  29.  
  30.  
  31.  
  32.  
  33. int main() {
  34.    
  35.         int AD_er=0;                    //AD értékét tartalmazó változó
  36.     init();                                     //inicializáló függvény
  37.    
  38.     while(1){
  39. //XXXXXXXvAD konverzió
  40.         ADON=1;                                 //AD engedélyezése
  41.         GODONE = 1;                             //AD konverzió megkezdése
  42.         while(GODONE)continue//várunk hogy AD kész legyen
  43.         ADRES=AD_er;                    //AD értékét átadom egy változónak
  44.  
  45. //xxxxxxxx AD érték vizsgálata
  46.    if (AD_er>=128)                      //ha AD_er értéke nagyobb kapcsolni kell
  47.        {
  48.         RELE=1;
  49.         LED=1;
  50.         }//IF igaz vége
  51.  
  52.                 }//While vége  
  53. }//Main vége


Az ADCON0 regiszter bitjeit definiálom majd szintax errort dob az értékadásuknál!
Mit csinálok rosszul? Köszi
(#) icserny válasza borvendeg hozzászólására (») Jan 14, 2014 /
 
Nézd meg a PIC12F510-höz tartozó fejléc állományban, hogyan definiálták az ADCON0bits struktúrát! Az egyes biteknek valószínűleg betűvel kezdődő azonosító nevek vannak. Az ADCON0bits.0 C szintaktika miatt azért helytelen, mert a pont után egy azonosítónak kell állnia, nem pedig számnak - gondolom én C18 analógiák alapján...
(#) borvendeg válasza icserny hozzászólására (») Jan 14, 2014 /
 
Köszi! Már lefordul a kód. Viszont valami gáz még van. Olyan mintha az AD nem mérne. Ami érdekes hogy az IF-ben ami az AD értékén alaul ha megfordítom a relációt akkor is ugyanúgy magas állapotban marad az I/O.
  1. #include <pic12f510.h>
  2. #include <xc.h>
  3.  
  4. //__CONFIG(LVP_OFF & MCLRE_OFF & FCMEN_OFF & IESO_OFF & CLKOUTEN_OFF & BOREN_OFF & CPD_OFF & CP_OFF &PWRTE_OFF & WDTE_OFF & FOSC_INTOSC & STVREN_OFF & WRT_OFF & PULLEN_OFF);
  5.  
  6. #define _XTAL_FREQ 8000000 //osc freq
  7.  
  8. #define RELE    GPIObits.GP5
  9. #define LED     GPIObits.GP4
  10.  
  11. //#define ANS1  ADCON0bits.7
  12. //#define ANS0  ADCON0bits.6
  13. //#define ADCS1 ADCON0bits.5
  14. //#define ADCS0 ADCON0bits.4
  15. //#define CHS1  ADCON0bits.3
  16. //#define CHS0  ADCON0bits.2
  17. //#define GODONE        ADCON0bits.1
  18. //#define ADON  ADCON0bits.0
  19.  
  20. void init (void){
  21. TRIS     = 0b00000100;  //mindenki kimenet GP0 bemenet(AD)
  22. ANS1    =       0;                      //an2 bemenet
  23. ANS0    =       1;
  24. CHS1    =       1;
  25. CHS0    =       0;
  26. //        unsigned GO                     :1;
  27.   //      unsigned CHS0                   :1;
  28.     //    unsigned CHS1                   :1;
  29.       //  unsigned ADCS0                  :1;
  30. //        unsigned ADCS1                  :1;
  31.   //      unsigned ANS0                   :1;
  32.     //    unsigned ANS1
  33.  
  34.  
  35. }
  36.  
  37.  
  38. int main() {
  39.    
  40.         int AD_er=0;                    //AD értékét tartalmazó változó
  41.     init();                                     //inicializáló függvény
  42.    LED=0;
  43.     while(1){
  44.         //XXXXXXXvAD konverzió
  45.         ADON = 1;                                       //AD engedélyezése
  46.         GO = 1;                         //AD konverzió megkezdése
  47.        
  48.         while(GO)continue;      //várunk hogy AD kész legyen
  49.  
  50.                 ADRES=AD_er;            //AD értékét átadom egy változónak
  51.  
  52.                 //xxxxxxxx AD érték vizsgálata
  53.                 if (AD_er<=128)                 //ha AD_er értéke nagyobb kapcsolni kell
  54.                 {
  55.                 RELE=1;
  56.                
  57.         }//IF igaz vége
  58.  
  59.         }//While vége  
  60. }//Main vége
(#) borvendeg válasza borvendeg hozzászólására (») Jan 14, 2014 /
 
Mivel két led van így nehézz debuggolni de kideítettem AD_er értéke 1 és nem változik. De valaki 1 értéket kell hogy adjon neki mert 0-val hozom létre... Szóval mitől lehet ez? Nem megy az AD vagy csak egyszer fut le?
(#) icserny válasza borvendeg hozzászólására (») Jan 14, 2014 /
 
  1. ADRES=AD_er;
Ezt nem fordítva akartad?
(#) Erick hozzászólása Jan 14, 2014 /
 
Sziasztok!

Az lenne a kérdésem, hogy szeretném egy autó (Opel Astra F) sebességmérő jeladójának jelét egy MSP43g2553 mikrovezérlőhöz illeszteni sebességmérés céljából. Egy optocsatolón keresztül vinném a vezérlőbe, és az lenne a kérdésem, hogy milyen szűrések és egyéb megoldások kellenének az opto elé, hogy ne legyen gond a zavarokkal és egyebekkel? A jeladó elvileg testre kapcsolgat, amikor impulzust ad.

Köszönöm a válaszokat!
(#) Beles hozzászólása Jan 14, 2014 /
 
Sziasztok!
Vettem ma egy PIC24EP128MC202 picet, de sajna nem ismeri fel a pickit3. Mplabban próbálkozok, de amikor csatlakozni akarok, mindíg 00000 olvas ki a device ID-t. Gyárilag gondolom a PGED1/PGEC1-en kellene tudnom programozni, nem? A Pickit3 programmer programban nincs is ilyen IC.
Következő: »»   479 / 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