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   573 / 1210
(#) Hp41C válasza zlanczky hozzászólására (») Szept 26, 2014 /
 
Próbáld a PICkit2 saját programjával.
(#) usane válasza zlanczky hozzászólására (») Szept 26, 2014 /
 
Hányas verziójú Mplabot használsz?
Ha régit akkor frissitsd, ha ujat akkor próbáld a pickit2 programmerrrel mint itt előtetm Hp41C kolléga felvetette, azzal szokott menni ami mplabnak nem.
(#) foxi63 válasza vardav hozzászólására (») Szept 26, 2014 /
 
Szia!
Elég őskövület, de a csatolt progival menni fog! LPT porton.
Nevezd át és csomagold ki.
üdv.:Foxi
A hozzászólás módosítva: Szept 26, 2014

icprog.ex
    
(#) vardav válasza foxi63 hozzászólására (») Szept 27, 2014 /
 
Köszönöm, még annyi kérdésem lenne, hogy invertálni kell valamelyik lábat IC-Prog-ban? ("Invert Data Out", "Invert MCLR", stb.) Vagy hagyjam úgy ahogy van?
A hozzászólás módosítva: Szept 27, 2014
(#) gaspar_zsolt válasza gaspar_zsolt hozzászólására (») Szept 28, 2014 /
 
Sziasztok!

Mivel ezidő alatt nem érkezett válasz, én tovább kerestem a hiba forrását.
Oszcilloszkópot kötve a PICre, azt tapasztaltam, hogy a 12F629 az adott kimenetet felvillantja egy nagyon rövid, kb 50ms ideig, majd a beírt változó értékétől függően elindítja a TIMER1-et és addig a kimenet szintén magas jelet ad. Ez a TIMER1 lejártával aztán lekapcsolásra kerül.

Kérdésem, hogy mi okozhatja ezt a felvillanást a tényleges felkapcsolás előtt!
A program szerint nincs ilyen utasítás.
(#) Birs Alma hozzászólása Szept 28, 2014 /
 
Sziasztok!
MPLAB-X-ben xc8-at használok.
Debug tool-nak symulator-t állítok be.
Szépen működik is a debuk, de sajna minden változóra, amit a watch ablakban kiválasztok, azt írja, hogy out of scpe. Persze csak akkor várom, hogy lássam a változó értékét, amikor a végrehajtás olyan helyen van, ahol valójában látható az illető változó. (pl. egy függvényen belül a saját paramétere, vagy pl. egy for cikluson belül a saját ciklusváltozója.) Szóval úgy nézki, hogy mindig, minden változóra azt mondja, out of scope
Vajon mi lehet a megoldás?
Kösz,
L.
(#) Birs Alma válasza Birs Alma hozzászólására (») Szept 28, 2014 /
 
Pontosítok, úgy tűnik, csak a teljes programra globális (minden blokkon kívül deklarált) változókat hajlandó megmutatni. A lokális, de látható változókat nem.
(#) Hp41C válasza Birs Alma hozzászólására (») Szept 28, 2014 /
 
Használd a Watch ablak tetején a combobox -ot, vélaszd ki a változót és nyomb meg az "Add Symbol" gombot. A lokális változók megadása: <függvénynév>@<változónév>
(#) ktamas66 válasza gaspar_zsolt hozzászólására (») Szept 28, 2014 /
 
Az 50ms nagyon hosszú idő, szinte biztos, hogy a program generálja. Az adott programrészben én nem láttam hibát, de én az interrupt kezelés körül (mivel a GIE engedélyezve van), esetleg a NEW_PACKET változó kezelése körül néznék szét.
(#) AZoli válasza Birs Alma hozzászólására (») Szept 28, 2014 /
 
Szia!

X -ben Window / Debugging / Variables -ben találod a lokális változókat. Úgy emlékszem ebbe az ablakba valahogy behozhatóak a Watch ablakban kiválasztott globális változók is, vagy fordítva.

Szerintem az MPLAB X lassan megérdemelne egy saját témát, ha nem vagyok ezzel a gondolattal egyedül, valaki nyithatna egyet.
(#) gaspar_zsolt válasza ktamas66 hozzászólására (») Szept 28, 2014 /
 
Köszi Tamás, akkor ránézek még ott mi lehet.
Az a bajom, hogy ez a program fut egy 16F1826-ban, átírva a regiszterekkel és abban nincs semmi hiba. Emiatt tanácstalan vagyok.
(#) patrik81 hozzászólása Szept 28, 2014 /
 
Sziasztok!

Írtam egy programot.Az a kérdésem,hogy nem a nyomógomb elengedésekor kéne az RB4-es LED-nek felvillania? Azt csinálja,hogy nyomva tartáskor vált állapotot az RB4-es LED.Az RC0-ás LED rendesen vált állapotot.
  1. #include <pic.h>
  2. #include "config.h"
  3. void delay(unsigned int varakozasIdo)
  4. {
  5.   for (unsigned int counter = 0; counter < varakozasIdo; counter++)
  6.   {
  7.       ;
  8.   }
  9. }
  10. int main()
  11. {
  12.     TRISB5 = 1; //RB5 nyomógomb
  13.     TRISB4 = 0; //RB4 LED
  14.     TRISC0 = 0; //RC0 LED
  15.     ANSELH = 0;
  16.     int elozoAllapot = 0;
  17.     RB4 = 0;
  18.     while (1)
  19.     {
  20.         while(!RB5); //lenyomásig itt várakozik
  21.         delay(2000);
  22.         elozoAllapot = !elozoAllapot;
  23.         RC0 = elozoAllapot;
  24.         while(RB5); //felengedésig itt várakozik
  25.         delay(2000);
  26.         RB4 = 1;
  27.     }
  28. }
(#) Birs Alma válasza Hp41C hozzászólására (») Szept 28, 2014 /
 
Köszönöm!!!
(#) Birs Alma válasza AZoli hozzászólására (») Szept 28, 2014 /
 
Köszi!
(#) matheattila válasza patrik81 hozzászólására (») Szept 28, 2014 /
 
Az RB4 csak egyetlen egyszer, a legelső gomblenyomáskor vált állapotot (kigyúl a LED) és mindaddig úgymarad ameddig le nem veszed a tápot a PIC-ről...
Mint már üzenetben is írtam (csak úgy látom nem értetted meg) egy gombot úgy kell bekötni (ahogy az általad említett panelen is van), hogy a gomb egyik lábát a földre kötöd, a másikat egy 10k-s ellenállással a VDD-re és ahol a gomb és az ellenállás össze vannak kötve oda kell kötni a PIC lábát (esetleg még egy soros ellenállást is be lehet tenni). Így az RB5 mindig magas szinten (VDD) lesz ameddig a gomb nincs lenyomva, lenyomáskor alacsony szintre (VSS/GND) kerül, ezért a 24. sorban addig várakozik ameddig le nem nyomod a gombot (mert akkor RB5 '0' lesz és már nem teljesül a while feltétele).
(#) don_peter válasza patrik81 hozzászólására (») Szept 29, 2014 /
 
RB4-et sehol nem állítod nullára a while (fő)cikluson belül, így amikor 1-re állítod akkor úgy is marad kikapcsolásig.
Hallgass matheattila-ra.
(#) Istibácsi hozzászólása Szept 29, 2014 /
 
Sziasztok!

Egy olyan kérdésem volna, hogy egy 16F630-as PICt szeretnék működésre bírni, de nem csinál semmit.
Eredetileg egy töltő áramkört készítenék belőle, de feltöltöttem a programot, betettem az áramkörbe és semmi..
Hogy kitaláljam hol a hiba, írtam egy programot ahol csak a C0 lábat emelem H szintre, de sajnos ezt sem csinálja meg.
Feltöltésnél, visszaellenőrzésnél minden rendben, kivéve az OSCCAL érték miatt kiabál, elvileg ezt az értéket az első írás előtt ki kellett volna olvasnom és visszaírni, de ezt nem tettem meg, mert eddig csak 16F685-el dolgoztam és ott nem kellett ezt megtenni.
Próbáltam utánajárni, de már egy kicsit belekeveredtem, mert valahol azt olvastam, hogy enélkül az érték nélkül a program nem indul el, máshol azt olvasom, hogy ez csak korrekciós érték és figyelmen kívül lehet hagyni..
Szeretném kérni, hogy ez ügyben egy kicsit homályosítsatok fel.
Köszönöm!!

Üdv: Isti
(#) usane válasza Istibácsi hozzászólására (») Szept 29, 2014 /
 
Mivel programozod? Ha pickit2-vel annak a programjában, Tools -> OSCCAL -> Auto Generate(ha jól emlékszem) le tudja neked generálni. Ha nincs ilyen, akkor az adatlapon van egy asm kódrészlet mi visszaállítja a gyári értéket. Megerősíteni nem tudom 630 sosem volt a kezem között, legalábbis fejlesztési céllal
(#) Istibácsi válasza usane hozzászólására (») Szept 29, 2014 /
 
Ezt a Pickites visszaállítást olvastam, de én csak egy sima JDM programozót dobtam össze, ugyh sajn ez most nem jön össze.
Esetleg erre a kódrészletre gondolsz?

BSF STATUS, RP0 ;Bank 1
CALL 3FFh ;Get the cal value
MOVWF OSCCAL ;Calibrate
BCF STATUS, RP0 ;Bank 0

Köszi!
(#) vilmosd válasza Istibácsi hozzászólására (») Szept 29, 2014 / 1
 
Probald meg hogy a 2. es a3. sort kihagyod, akkor mi tortenik. A Sprut oldalan talalsz egy programocskat amivel elo lehet allitani a kalibracios erteket.
(#) usane válasza Istibácsi hozzászólására (») Szept 29, 2014 / 1
 
Igen arra.
(#) valaki2233 hozzászólása Szept 29, 2014 /
 
Sziasztok szeretnék én is elkezdeni a PIC-ekkel foglalkozni, mert érdekel, mit ajánlotok hogyan fogjak hozzá az első PIC égetőmhöz? Először csak próbálgatni szertném
(#) Pali79 válasza valaki2233 hozzászólására (») Szept 29, 2014 /
 
Ha jót akarsz és nem akarsz szívni akkor vegyél egyet. Egy pickit2 klónt 5-6k-ért meg lehet venni, a pickit3 kb a duplája ennek gyáriba, de abból is lehet venni klónt kb 7e-ért.
(#) Bakman válasza valaki2233 hozzászólására (») Szept 29, 2014 /
 
Egyszerűbb és célravezetőbb első lépésként egy gyári égetőt beszerezni, pl. PicKIT 2. Az egyszerűen megépíthető égetőkkel sok probléma lehet a mai világban, kár úgy kezdeni a dolgot, hogy már a programot sem tudod a PIC-be égetni.
(#) Istibácsi válasza usane hozzászólására (») Szept 30, 2014 /
 
Az adatlapon lévő 4 sorral sikerült visszaállítani és el is indult a PIC.
Beírtam a programot és az utolsó címre 0700-at generált.
Utána beírtam a programomat és minden oké.
Köszönöm Uraim!

Üdv: Isti
(#) Electricboy hozzászólása Szept 30, 2014 /
 
Sziasztok!
A lehető legegyszerűbb (óra[lehet 12 órás formátum is] ,perc) pic-cel megvalósított 7 szegmens led kijelzős óra asm-ben íródott kódja kellene nekem áttanulmányozás, értelmezés, céljából. Esetleg ha van valami ilyen irányú leírás valahol azt is szívesen venném.
(#) Maverick91 hozzászólása Okt 1, 2014 /
 
Sziasztok!

Van egy pickit2 klón égetőm, amivel eddig 16f84 és 16f628 piceket égettem minden gond nélküll. Most egy smd 18f2424-at próbáltam írni, de valami gebasz van. A program (pickit2) látja, felismeri, látszólag meg is írja, de az ellenőrzésnél a következő hibaüzenetet írja: "Verify failed at address 0000h". Mi lehet a gond? Miket ellenőrizzek, hol kezdjem a hibakeresést?

Köszi, Maverick
(#) Hp41C válasza Maverick91 hozzászólására (») Okt 1, 2014 /
 
Ha felismeri, akkor valószínűleg a kommunikáció jó, de a Tools / Troubleshoot menüponttal (programozandó kontroller csatlakoztatása nélkül) leellenőrizhető. Ha SMD, a vezetékek, tápszürés ellenőrzése sem árt. SMD -nél még az is okozhat problémát, hogy a külső oszcillátor ki van építve. Ha a program néhány utasításon belül kimenetté (T1 oszcillátorrá, stb) állítja a PGC és/vagy PGD lábakat és a MCLR opció le van tiltva, a programozó nem tudja felvenni a kapcsolatot a kontrollerrel. A program elején elhelyezett néhány ms várakozással lehet rajta segíteni. És végül, a program kiolvasásvédelme aktivizálva lehet. Piros "Code protect" vagy "All protect" szöveg a konfigurációnál.
(#) usane válasza Electricboy hozzászólására (») Okt 1, 2014 / 1
 
GOOOOgle.
Például
De itt is találsz, nem tudom melyik az egyszerűbb.
Bővebben: Link
A hozzászólás módosítva: Okt 1, 2014
(#) nedudgi válasza Electricboy hozzászólására (») Okt 1, 2014 / 1
 
Szerintem szemléletet kellene váltanod. Ne órát keress, hanem próbáld részekre bontani a feladatot. Ehhez kerek, független almodulokat próbálj kialakítani. A könnyebb áttekinthetőség céljából alakíts ki egy projektet, szubrutinokra bontva.
Egy óra három egymástól független részből áll:
- pontos időalap lehetőleg másodperc alapon
- idő és dátum értékének növelése, átalakítása decimális formába, (esetlegesen egy vagy több ébresztési, riasztási funkció)
- megjelenítés)
Ehhez uralni kell a megszakítások kezelését, és a több forrásból összeszerkesztett projekt létrehozását. Így külön-külön le tudod tesztelni a programot.
Következő: »»   573 / 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