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   598 / 1210
(#) matheattila válasza Pali79 hozzászólására (») Nov 26, 2014 /
 
Csak ennél a programnál viselkedik így vagy más programnál is?
Ha csak ennél akkor a programmal van a gond, ha másnál is akkor a szimulátorral, bár ez utóbbit kétlem.
Próbáld kicsit "lebutítani" a programot, kommentelj ki bizonyos részeket és nézd meg úgy is, szerintem valamelyik megszakítással vagy valamilyen rekurzív függvényhívással lesz a gond
(#) edison14 válasza edison14 hozzászólására (») Nov 26, 2014 /
 
Közben rátaláltam a válaszra és végülis igazam lett. A PORTX csak a bemenetek olvasására használható, a LATX pedig a portok írására. Na ezentúl kétszer fogok olvasni
Köszönöm a segítséget.
(#) Pali79 válasza matheattila hozzászólására (») Nov 26, 2014 /
 
Megoldódott! Volt egy elírás a kódban, az egyik változónak ugyanaz volt a neve mint egy cimkének és ez egy kicsit összezavarta.
(#) don_peter válasza edison14 hozzászólására (») Nov 26, 2014 /
 
Ez nem minden esetben igaz..
Vannak PIC-ek melyekben még nincs LATx regiszter, azoknál a PORTx regiszterrel írod és azzal is olvasod
A hozzászólás módosítva: Nov 26, 2014
(#) edison14 válasza don_peter hozzászólására (») Nov 26, 2014 /
 
Igen tudom mivel régebben PIC16F877-el ismerkedtem és abban a PORTX -el lehetett írni is és olvasni is a port értékét (nem volt LATX regiszter). Ez most új volt nekem mint sokminden más is ebben a PIC18-as szériában.
(#) usane válasza edison14 hozzászólására (») Nov 27, 2014 /
 
Idézet:
„A PORTX csak a bemenetek olvasására használható”

Ez azért így nem egészen igaz.
A port is írható, csak ügyesen. Figyelembe véve, hogy read-modify-write utasítás.
Az olvasása viszont nem biztos, hogy ugyanazt adja vissza amit beírtál.
A hozzászólás módosítva: Nov 27, 2014
(#) edison14 válasza usane hozzászólására (») Nov 27, 2014 /
 
Szia!

Nem egészen értem azt a read-modify-write utasítást. Hogyan tudnám ezt figyelni. Bocsi a tudatlanságom, esetleg el tudnád magyarázni vagy példát linkelni hozzá?

Köszönöm.
Üdv. Tamás
(#) Szárnyas válasza edison14 hozzászólására (») Nov 27, 2014 /
 
Itt olvashatsz a jelenségről: Bővebben: Link
A hozzászólás módosítva: Nov 27, 2014
(#) edison14 válasza Szárnyas hozzászólására (») Nov 27, 2014 /
 
Köszönöm a linket, most már értem mire céloztál.
(#) nagzso hozzászólása Nov 27, 2014 /
 
Sziasztok! 16x2 karakteres LCD-t szeretnék vezérelni PIC16F1716-tal, de valami elmászik benne. Csak aposztróf jeleket jelenít meg. A picula-s LCD vezérlő programot használom.
(#) Hp41C válasza nagzso hozzászólására (») Nov 27, 2014 /
 
Betartod az időzítéseket. MpLab szimulátorral ellenőrizheted.
(#) nagzso válasza Hp41C hozzászólására (») Nov 27, 2014 /
 
Igen. Ugyanaz a kód / láb kiosztás hibátlanul megy PIC18F2550-nel. Amikor elindul a kijelzőm, akkor szépen látom a karakter kontrasztot mindkét sorba, viszont ahogy elkezd kiírni rá, a 2. sorom eltűnik (ez persze már a PIC16F1716-on). Lehet az a baj, hogy valamit rosszul állítottam be, amikor hozzáadtam a PICKIT2-höz?
(#) Hp41C válasza nagzso hozzászólására (») Nov 27, 2014 /
 
A PICkit2 egy három (négy) csatornás logikai analizátor is. Segítségével megmérheted az időzítéseket, felveheted a jelalakokat is.
(#) edison14 hozzászólása Nov 27, 2014 /
 
Sziasztok!

Közben felmerült bernnem egy újabb kérdés. Milyen programozót érdemes venni és hol? Nem akarom nagy költségekbe verni magam így valamilyen utánépített programozó is elég lenne nekem. Esetleg ebay-en mennyire érdemes ilyen utánépített programozókat venni?

Pl ez szerintetek megérné: Bővebben: Link

Köszi a válaszokat és az infókat.
A hozzászólás módosítva: Nov 28, 2014
(#) nagzso válasza Hp41C hozzászólására (») Nov 27, 2014 /
 
Máshol a gond. Ahogy írok a PIC-be kapok ugye egy checksum-ot. Ennek olvasáskor meg kéne egyeznie ugye, de még se. Ugye a PIC16F1716 nincs alapból hozzáadva a PICKIT2 v2.61-hez, így megcsináltam én, az itt kapott segítség alapján, de valamit elcseszhettem.
(#) Pali79 válasza edison14 hozzászólására (») Nov 27, 2014 /
 
Mivel a programozó leírása minden adattal együtt szabadon letölthető, elméletileg az is olyan mint a gyári, nyilván nem ugyanaz, de elméletileg...
Persze ha komolyabban gondolod a dolgot kb 12-ért már itthon is megkapod az eredetit
A hozzászólás módosítva: Nov 27, 2014
(#) nagzso válasza nagzso hozzászólására (») Nov 27, 2014 /
 
Tudnál segíteni, hogy mit ronthattam el benne?

16f1716.png
    
(#) DJozso hozzászólása Nov 28, 2014 /
 
Sziasztok! Egy kis help kellene. Hogyan lehet a tmr2 időzítőt ki-be kapcsolni? Tudom, van rá egy bit.
18f4550 controller. A helyzet, hogy egy bemenet hatására egy led bekapcsol, tmr2 elindul, majd x megszakítás után led kikapcsol, tmr2 kikapcsol. Majd ha bemenet ismét aktív, kezdődik előröl. Az alábbi progi müködik az első bemeneti jelre, de a másodikra nem kapcsolja be a ledet, és a tmr2-t. Mi lehet a baj vele?
  1. unsigned int cnt;
  2.  
  3. void interrupt() {
  4.   if (PIR1.TMR2IF) {   //tmr2 flag ellenőrzés
  5.     cnt++ ;            // megszakítás számláló
  6.     PIR1.TMR2IF = 0;   //flag törlés
  7.     TMR2  =   0;
  8.     }
  9. }
  10.  
  11. // main
  12. void main() {
  13.   ADCON1 = 0x0F;              // Minden bemenet digitális
  14.   cnt = 0;                    // cnt váltózó start értéke
  15.   PORTB = 0xFF;
  16.   TRISB =   0;
  17.   PORTA =  0xFF;
  18.   TRISA = 0;
  19.   PORTD =0x00;
  20.   TRISD =   0;
  21.   TMR2  =   0;                //tmr2 regiszter beállítása
  22.   PIE1.TMR2IE = 1;            // megszakítás bekapcsolása
  23.   INTCON = 0xC0;              // Globális, perifériás megszakítás bekapcsolása
  24.  
  25.   while (1) {
  26.     if (PORTA.F3 == 1){    // Start nyomógomb
  27.      T2CON = 0xFF;        //Tmr2 konfigja (Osztói, illetve tmr2 start
  28.      TMR2 = 0;
  29.      PIE1.TMR2IE = 1;    }  // megszakítás bekapcsolása
  30.     if (cnt == 0) PORTD.F1 = 0; //Kikapcsolt tmr2 mellett led kikapcsolva
  31.     if (cnt != 0 & cnt < 6100) { //Led bekapcsolva amig cnt< 6100 ~30s
  32.       PORTD.F1 = 1; }
  33.     if (cnt >= 6100) {  //~30s után
  34.       T2CON = 0xFB;    //Tmr2 kikapcsolása
  35.       PIE1.TMR2IE = 0; // megszakítás kikapcsolása
  36.       PORTD.F1 = 0;}}}  //LED kikapcsolása
(#) DJozso hozzászólása Nov 28, 2014 /
 
Sikerült megoldanom. A Cnt változót kellett visszaállítani nullára, ha a led kikapcsol. Köszönöm a lehetőséget.
(#) hzsoltika12 hozzászólása Nov 28, 2014 /
 
hello
Az érdekelne hogy van-e olyan pic pogramozo (elöre felprogramozot pic nélkül) ami csak PIC16F628-at programoz?
Elöre is köszönöm!
A hozzászólás módosítva: Nov 28, 2014
(#) nedudgi válasza hzsoltika12 hozzászólására (») Nov 28, 2014 /
 
Nincs. A legegyszerűbb is tud párszáz típust programozni.
(#) hzsoltika12 válasza nedudgi hozzászólására (») Nov 28, 2014 /
 
Oké
De én házilag szeretném megcsinálni!
(#) nedudgi válasza hzsoltika12 hozzászólására (») Nov 28, 2014 /
 
Nagy munka lenne. Jobban jársz az univerzálissal...
(#) hzsoltika12 válasza nedudgi hozzászólására (») Nov 28, 2014 /
 
Az mijen?
(#) nedudgi válasza hzsoltika12 hozzászólására (») Nov 28, 2014 /
 
Ha van párhuzamos port a gépeden, ilyen.
(#) hzsoltika12 válasza nedudgi hozzászólására (») Nov 28, 2014 /
 
Van
És ez minden féle picet programoz?
És mi az a vpp kapcsolo?
(#) nedudgi válasza hzsoltika12 hozzászólására (») Nov 28, 2014 /
 
Az összes típust nem, csak azokat, amiket a kezelő programja tartalmaz. Nem ismerem, mert nekem Pickit2 van, mindössze annyit tudok, hogy többen megépítették, és működik nekik. Hátránya, hogy macerás a kezelése, akkor érdemes megépíteni, ha ritkán programozol.
(#) hzsoltika12 válasza nedudgi hozzászólására (») Nov 28, 2014 /
 
Akkor csak a pic16f-eket programoza?
És mi az a vpp kapcsolo?
A hozzászólás módosítva: Nov 28, 2014
(#) qvasz2 válasza hzsoltika12 hozzászólására (») Nov 28, 2014 /
 
Ha jót akarsz nem kínlódsz ezzel. Nálam egy marék PIC bánta. De égetni nem tudtam vele egyet sem.
Inkább ezt lesd meg: Bővebben: Link
És itt a terv is: Bővebben: Link
A hozzászólás módosítva: Nov 28, 2014
(#) Hp41C válasza hzsoltika12 hozzászólására (») Nov 28, 2014 /
 
A kapcsolós helyett inkább az Oshonsoft párhuzamos portos programozó. Ezzel a PICkit2 -be való 18F2550 is felprogramozható.
A hozzászólás módosítva: Nov 28, 2014
Következő: »»   598 / 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