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   65 / 1210
(#) Bell válasza vaszil29 hozzászólására (») Máj 5, 2010 /
 
Egy ilyen áramkörben több tíz(száz)ezer alkatrész, a lehetséges hibák száma ennek sokszorosa.
Legegyszerűbb, ha egy olyan programot teszel bele, amire épp használni szeretnéd. Ha ott mindenben - áramfélvétel, sebesség, stb.. - kifogástalan, akkor az áramkör használható.
(#) zsoltee0001 hozzászólása Máj 6, 2010 /
 
Sziasztok
Elég rég nem foglalkoztam PIC-el, szóval nem kinevetni a kérdésem.
Ott tartok, hogy működik egy villogó led, pl a Gp0 lábon, vagy egy led világít a Gp1 lábon ha megnyomok egy gombot a GP2 lábon, ez idáig ok.
De, hogy tud működni az egész 1 időbe?
Mert ugyebár, ha benne van a villogó ciklusába akkor nem tudja, hogy én lenyomtam a nyomógombot.
Ráadásul Mikropascalba kezdtem az egészet, így elég kevés példaprogramot találok.
Ki tudna valaki segíteni néhány hasznos tippel?
üdv
(#) vicsys válasza zsoltee0001 hozzászólására (») Máj 6, 2010 /
 
Megpróbálom konyhanyelven elmondani az ötletem:
A villogó ciklusában tegyél egy gombfigyelést. Ha megnyomják a gombot akkor megy a hozzá tartozó led majd folytatja a villogó ciklust. Ha már megy a program, megpróbálhatod azt is, hogy a nyomógombod egy megszakítást okozzon ami majd vezérli a ledet. Keress pédákat IF-ELSE ciklusokra. Ez amolyan feltételes elágazás vagy feltétel teljesülésének figyelése.
(#) zsoltee0001 válasza vicsys hozzászólására (») Máj 6, 2010 /
 
Szia
Megszakításokat most nézem át, komoly téma.
Ha jól értem akkor az /INT lábra lehet ezt alkalmazni csak.
üdv
(#) vicsys válasza zsoltee0001 hozzászólására (») Máj 6, 2010 /
 
Éppenséggel két félét is lehetne alkalmazni. Az egyik csak az RB0-ás(INT) vagy az int_RB amikor is a B porton van változás. Az adatlap azon részén amihez interrupt van társítva megtalálhatod a lábak nevét.
(#) zsoltee0001 válasza vicsys hozzászólására (») Máj 6, 2010 /
 
Most, hogy átnéztem a 0-tól robotig III, azt hiszem sikerült teljesen összezavarodnom ezzel a megszakítással kapcsolatba.
Az a gond, hogy egyik pillanatba még fet-ek kapcsolgatásárról szól a II. rész, aztán meg ugrik akkorát, hogy nem tudom követni, teljesen kínai.
Szóval van egy gomb ami a GP2/int lábon van, közbe megy egy villogó amit megszakítanék a gomb megnyomásával amit kapcsol egy másik led-et egy másik lábon és persze megy közbe a villogó.
Helpbe ezt találtam
  1. procedure interrupt;
  2. begin
  3.  
  4.   if TestBit(INTCON, TMR0IF) = 1 then
  5.   begin
  6.     counter := counter + 1;
  7.     TMR0 := 96;
  8.     ClearBit(INTCON, TMR0F);
  9.    // ClearBit is realised as an inline function,
  10.    // and may be called from within an interrupt
  11.   end
  12.  
  13.   else
  14.  
  15.   if TestBit(INTCON, RBIF) = 1 then
  16.   begin
  17.    counter := counter + 1;
  18.    TMR0 := 96;
  19.    ClearBit(INTCON, RBIF);
  20.   end;
  21. end;

Ami nekem teljesen kínai, hogyan lehet ezt értelmezni?
(bocsi, de ez a megszakításos dolog nekem nagyon magas)
(#) vicsys válasza zsoltee0001 hozzászólására (») Máj 6, 2010 /
 
Hagyd a fenébe a megszakítást. Először csinálj egy villogtató ciklust amim belül van egy gomb figyelés.
(#) icserny válasza zsoltee0001 hozzászólására (») Máj 6, 2010 /
 
Idézet:
„Ki tudna valaki segíteni néhány hasznos tippel?”
Ha elolvasod ezt a topikot, akkor kiderül, hogy már körbejártuk ezt a témát. Pl. itt, itt és itt.
(#) zsoltee0001 válasza vicsys hozzászólására (») Máj 6, 2010 /
 
Először így csináltam.
  1. while true do
  2. begin
  3. i:=1-i;
  4. gpio.0:=i;
  5. delay_ms(1000);
  6. if gpio.2=1 then         // Ha megnyomom a GP2-re kötött nyomógombot, a GP1 led kialszik
  7. gpio.1:=1
  8.  else
  9. gpio.1:=0;
  10.  
  11. end;


Nem rossz, csak az a gond, hogy a gomb lenyomást csak 1 másodpercenként figyeli, van esetleg praktikusabb megoldás?
(#) vicsys válasza zsoltee0001 hozzászólására (») Máj 6, 2010 /
 
Igen, van. A megszakítás...
(#) icserny válasza zsoltee0001 hozzászólására (») Máj 6, 2010 /
 
Nézd meg a linkeket, amit adtam! Az elv az, hogy fő cilusban nem vársz egy másodpercet, csak annyit, amennyit a nyomógomb pergésmentesítéséhez várni kell. Mondjuk 25 ms-ot. Akkor a nyomógombra 25 ms-onként rá tudsz nézni, de a LED-et nem kapcsolhatod ki-be 25 ms-onként, ezért ahhoz rendelsz egy számlálót, s csak akkor kapcsolod a LED-et, ha a visszaszámlálás lejárt.

Valójában a nyomógomb kezelése sem triviális, hiszen ha a 25 ms-os időszelet többszöröséig lenyomva tartod, akkor nem kell ki-be kapcsolgatni a hozzá rendelt eszközt. A mutatott linkeken azt is leírtam, hogy hogyan lehet egy státuszváltozóval adminisztrálni azt, hogy a legutóbbi lenyomás óta volt-e fölengedve, vagy sem.

Mindez interrupt nélkül is megoldható, csak az időzítési lánc lesz pontatlan, hiszen a 25 ms-os késleltetésekre rárakódik mindaz, amit időszeletenként csinálunk (gombfigyelés, státuszfigyelés, visszaszámlálás, LED kapcsolás). De amíg csak a LED villogtatása folyik, addig ez is bőven megfelel.
(#) zsoltee0001 válasza icserny hozzászólására (») Máj 6, 2010 /
 
Köszi
Próbálgatom
(#) vaszil29 válasza vicsys hozzászólására (») Máj 6, 2010 /
 
Szia!
Lett végül is valami ötleted a problémámra?
üd szabi
(#) vicsys válasza vaszil29 hozzászólására (») Máj 6, 2010 /
 
Mivel nem válaszoltál a kérdésemre:
Ha csak azt kell lepróbálni, hogy az I/O-k működnek, az viszonylag egyszerű. Kell egy led soros ellenállással és egy kapcsoló a felhúzó/lehúzó ellenállással.
Ha valamelyik perifériát is tesztelni kell, már nem ilyen egyszerű. Bell leírta, hogy a legjobb próba végtermékben vizsgálni, hogy működik-e?
(#) vaszil29 válasza vicsys hozzászólására (») Máj 6, 2010 /
 
OK!
köszi.
(#) vaszil29 válasza vicsys hozzászólására (») Máj 6, 2010 /
 
Szia!
visszaolvasva az előzményeket, szerintem a speciális funciók nem is kellenének, csak némi meggyöző müködés.
Gondolom, ha az alap lábak müködnek akkor nem lehet gond.
Nézeteim szerint, és a ti általatok kifejtett vélemények alapján elég macera lenne megépíteni a speckó vezérlések kijelzését, de gonodolom a minima lábak megvillogtatása egyszerübb egy teszt progival.
Így talán könnyebben segítenétek.
üdv szabi
(#) Bell válasza vaszil29 hozzászólására (») Máj 6, 2010 /
 
Én a portokkal kezdeném, mindegyikre egy ledet, ki / be kapcsolgatva, aztán 00-FF -ig.
Utána érdemes megvizsgálni minden fájlregisztert 00-tól FF-ig írva / olvasva, minden EEPROM címet, azt a néhány megszakítást.
Természetesen nincs akadálya minden utasítás lefuttatásának minden lehetséges paraméterrel és az eredmények ellenőrzésével.
(Mikorra kell beadni ezt a feladatot? Szerintem fogj neki mielőbb... senki sem írja meg helyetted.)
(#) icserny válasza vaszil29 hozzászólására (») Máj 6, 2010 /
 
Idézet:
„Gondolom, ha az alap lábak müködnek akkor nem lehet gond.”
Attól még más funkcióval lehet gond. Csak abban lehetsz biztos, hogy LED villogtatóként működőképes...

Szerintem nincs olyan program (és nem is férne bele a PIC memóriájába) ami minden funkciót letesztelne. Meg nincs is rá szükség, hiszen minden funkciót úgysem lehet egyidejűleg kihasználni.
(#) vaszil29 válasza Bell hozzászólására (») Máj 7, 2010 /
 
Kedves Bell!
Titkon reméltem, hogy valaki segít és megírja.
De azért köszi a reagálást és a tényfeltárást, hogy van mód a tesztre.
üdv szabi
(#) icserny válasza vaszil29 hozzászólására (») Máj 7, 2010 /
 
Idézet:
„Titkon reméltem, hogy valaki segít és megírja.”

Miért is írná meg? Ha téged érdekel a téma, úgyis elolvasod az adatlapot, esetleg a PIC16-ra és az MPLAB-ra vonatkozó leírásokat (lásd pl. az ebben a hozzászólásomban a linkeket). Ha viszont nem érdekel a téma, akkor meg úgyis mindegy, hogy működne-e a PIC...
(#) Bell válasza vaszil29 hozzászólására (») Máj 7, 2010 /
 
Ha a kiváncsiság motiválna és valóban az áramkör tesztelése lenne a célod, nem mástól várnád a TELJES programot. Rég nekifogtál volna.
Vedd észre, hogy ez elsősorban lehetőség számodra, nem feladat. Végre alkalmad van megismerni egy ilyen csodát, ami az IC-ben van.
De ha kényelmes vagy, sose leszel jó szakember. A papír egyetlen dologra jó csak ..., arra is kemény.
(#) MC Adam hozzászólása Máj 13, 2010 /
 
Sziasztok!
Szeretnék PIC-ekkel foglalkozni, illetve a használatukat megtanulni. Már van egy 16F84A típusom, ehhez kellene megfelelő égető. Elkezdtem egyet építeni, de inkább mégis vennék egyet készen.
Ezt találtam: Bővebben: Link (egész jó ára van, ha jól gondolom)
A véleményeteket szeretném kérni róla, hogy jó lesz-e nekem kisérletezési célra, illetve megéri-e megvenni.
(#) Báddzsó válasza MC Adam hozzászólására (») Máj 14, 2010 /
 
üdv, nekem van egy eladó pickit2 klónom, nincs összeforrasztva, de garantáltan jó konstrukció, annak idején mikor csináltam magamnak egyet akkor duplán rendeltem mindent és nyákot is 2őt martam, de mivel az első is tökéletes lett ezért a másodikat nem raktam össze. Ha érdekel írj privátot, ha kell össze is rakom, készre. Van róla cikk a itt a HE-n. smd-s változat.
megtaláltam: http://www.hobbielektronika.hu/kapcsolasok/pickit2_klon_epitese.html
ugyanez, ugyanígy néz ki
(#) szSzilard hozzászólása Máj 16, 2010 /
 
Sziasztok!
ICD2- vel próbálnék PIC18F4550- est programozni, de mindég a következő hibaüzenetet kapom:
Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to target
ICDWarn0020: Invalid target device id(expected=0x90, read=0x0)
...Reading ICD Product ID
Running ICD Self Test
...Passed
MPLAB ICD 2 ready for next operation
Tápfesz, bekötések rendben.
Mi lehet a hiba?
Köszönöm.
(#) Norberto válasza szSzilard hozzászólására (») Máj 16, 2010 /
 
PGC és PGD esetleg fordítva lett a PIC-re kötve?
(#) szSzilard válasza Norberto hozzászólására (») Máj 16, 2010 /
 
A bekötés jó.
(#) Norberto válasza szSzilard hozzászólására (») Máj 16, 2010 /
 
A 18F4550 egy áramkörben van és onnan kap külső tápfeszültséget? Vagy pedig önmagában szeretnéd felprogramozni az ICD2 segítségével?

Ha az utóbbi, akkor a Programmer főmenü > Settings menüpontját választva előbukkanó ablakban be kellene pipálnod a Power fülnél a Power target circuit from MPLAB ICD2 rubrikát.
(#) Atielektro hozzászólása Máj 17, 2010 /
 
Sziasztok!

Használni akartam egy 16F84A-son a B port felhúzó ellenállásait, de a fordító valamiért hibát jelzett a BCF OPTION_REG,RBPU utasításra vagyis pontosabban csak az RBPU-ra, de a bit neve helyett 7-est írva már lefordult a kód. A kérdésem tehát, hogy miért hibás, ha azt írom, hogy RBPU?
Előre is köszi a válaszokat!
(#) vilmosd válasza Atielektro hozzászólására (») Máj 17, 2010 /
 
Nezd meg a p16f84.inc mit ir. Azt az elnevezest kell alkalmazni
(#) El_Pinyo válasza Atielektro hozzászólására (») Máj 17, 2010 /
 
Szia!
Ha megnézed a kontroller .inc fájlját, akkor láthatod benne, hogy nincs RBPU definiálva. NOT_RBPU van helyette. Ezt használva már működnie kell.
Következő: »»   65 / 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