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   600 / 1210
(#) kissi válasza don_peter hozzászólására (») Nov 29, 2014 /
 
(#) qvasz2 válasza hzsoltika12 hozzászólására (») Nov 29, 2014 /
 
Én ezt nem építettem meg, csak a figyelmedbe ajánlottam a másik helyett, amivel viszont sokat szívtam
Ha olyan égetőt szeretnél, ami mindent visz, az a PicKit3! Már a PicKit2-vel sem tudsz minden PIC-et progizni, de ezek a mégrégebbi, párhuzamos portosok csak NÉHÁNY PIC-et támogatnak!!
(#) ktamas66 válasza Pali79 hozzászólására (») Nov 30, 2014 /
 
Nem bogoztam teljesen végig a programot, de alapvetően másként kellene szervezni. Szerintem felesleges minden impulzusnál kiszámolni mindent, és kijelezni, mert ez túl sokáig tart (ha 10 impulzusnál több jön másodpercenként azt úgyis felesleges kijelezned, mert úgysem tudod leolvasni). Tehát a kijelzést beállítod mondjuk 3-5db/s-ra, amíg a közte levő idő el nem telik csak az utolsó értékeket kell menteni, számolgatni felesleges (amit én linkeltem, ott az elején vizsgál egy váltózót, amit a kijelzéskor törlök).
Azt látom, hogy csak lekérdezed a megszakítást, de azt nem hol figyeled a túlcsordulást. Mivel először törlöd a megszakítás jelzőbitjét, lehet előbb jön új megszakítás, mint ahogy a számítás/kijelzés végezne.
(#) Pali79 válasza ktamas66 hozzászólására (») Nov 30, 2014 /
 
Köszönöm, hogy belenéztél! Lehet kicsit félreérhető, mert csak a legszükségesebb módosításokat csináltam meg, hogy a 877A-ról a 628A-ra át tudjam tenni. A túlcsordulásokat nem figyelem (egyenlőre) csak a számolás részén benne hagytam, gyakorlatilag mindig 0 most. Az egész nem megszakítással működik (mert az nem akart nekem összejönni rendesen), hanem a megszakítást jelző bit figyelésével. Tehát először inicializál, kiírja az alap szöveget stb. utána vár míg a megszakítást jelző bit 1 nem lesz. Addig csak a start címkén ugrál. Ha az impulzus bejött, a kiolvasás megtörtént, a megszakítást jelző bit 1-be állt, akkor kezd számolni, majd kijelezni. Ha közbe jön egy új impulzus akkor sem történik semmi, mert nem szakít meg, max ha a végére ért kezdi elölről az új értékekkel. De előre láthatólag nem lesz olyan sűrűn impulzus, hogy ez előfordulhatna.
(#) Peticilin hozzászólása Dec 1, 2014 /
 
Sziasztok!

Segítségeteket kérném két dologban. Inkább hardveres dologról van szó. Azt megírom előre,hogy a C és társi nyelv nekem magas. Programozni csak a Parsic segítségével tudok,ami már egész jól megy.
Az első: Mint kiderült a PWM modulban a frekvenciát nem lehet változtatni,mert az függ a pic timer-étől,ezért eléggé sípol a motor. Mondták,hogy mit hogy állítsak át az asm-ben,de akkor elmegy a pic időzítő része is,ami nekem fontos lenne,hogy nem menjen el.
A kérdésem az lenne,hogy hogy lehetne a csatolt kapcsolást úgy illeszteni a pic PWM kimenetére,hogy az 555 frekije menjen rá a motorra és ne a picé. Esetleg valami optocsatolóval?

A második: Amit tervezek áramkört,annak közvetlen a nyákra tervezném a Pickit2 csatlakozását,a könnyebb és gyorsabb programozás végett és hogy ne kelljen a foglalatból ki-be pakolgatni örökké a pic-et. Programozáskor a Pickit2 adja a tápot a picnek,de mivel a pic a nyákba van,így a pickit a többi dolognak is adná a tápot,ami gondolom nem jó,mert seggre ülne a programozó. A kérdésem az lenne,ha a pic egy diódán keresztül kapná a tápot,akkor a diódán eső feszültség nem okozna működési problémákat a picnél? Mert akkor a dióda után lenne a pickit csatlakozási pontja. Vagy inkább valami jumper-al oldjam meg? Ti ezt hogy szoktátok csinálni? Mi a jó megoldás?

Válaszotokat előre is köszönöm.
(#) Pali79 válasza Peticilin hozzászólására (») Dec 1, 2014 /
 
Idézet:
„Mondták,hogy mit hogy állítsak át az asm-ben,de akkor elmegy a pic időzítő része is,ami nekem fontos lenne,hogy nem menjen el.”
A ferki három dologtól függ: 1. oszcillátor freki, 2. Timer előosztásától, 3. PR2 regiszter értékétől. Ha a timert használod másra és az oszcillátor ferki is fix akkor csak a PR2-vel tudsz mahinálni.
Egyébként a PWM a Timer2-öt használja, a kisebb PIC-ekben is van legalább még kettő másik. Nem tudom milyen egyéb feladatokat szánsz neki, de szerintem van még lehetőség.
(#) Peticilin válasza Pali79 hozzászólására (») Dec 1, 2014 /
 
Szia!

A oszcillátor freki 4Mhz rezonátor lesz. Igen,ezeket írták nekem is,de ha jól emlékszem a Timer és a PR2 összefüggenek egymással. Meg az az igazság, én a pic-be nem szívesen nyúlnék bele. Mint írtam is az nekem ismeretlen rész. Esetleg az 555 -el való összekapcsolásra tudnál javasolni valamit?

Egyéb feladatok: egy fáradt olaj adagoló vezérlése lesz,sok időzítéssel és számolással
A hozzászólás módosítva: Dec 1, 2014
(#) Pali79 válasza Peticilin hozzászólására (») Dec 1, 2014 /
 
Arra sajnos nem. Analógban még annyira sem vagyok otthon, mint a digitálisban. Egyébként miből gondolod, hogy ezzel nem fog sípolni? Ahogy néztem a leírásokat a kitöltési tényező változtatásával nő a freki is. Tehát alacsony fordulatnál valószínűleg ezzel is sípol majd. De van 555-ös topic is, talán ott tudnak jobbat tanácsolni.
Szerk: valahol már találkoztam olyannal, hogy PWM-mel hajtott szabályzó áramkör, de most hirtelen nem lelem.
A hozzászólás módosítva: Dec 1, 2014
(#) Peticilin válasza Pali79 hozzászólására (») Dec 1, 2014 /
 
Az 555-öst már megépítettem és szépen működik. Ott is sípol,de nem vészesen. Mértem a frekit. 555-ön 130 és 200 Hz körül van,a picnél meg 3906 Hz fixen.
Köszi a segedelmet. Akkor írok az 555-be is.

A második kérdésemre tudsz mondani valamit?
A hozzászólás módosítva: Dec 1, 2014
(#) don_peter válasza Peticilin hozzászólására (») Dec 2, 2014 / 1
 
Ha gyári PICKIT2-őd van, akkor szerintem nem szükséges védeni legalább is addig biztosan nem amíg nem nagy fogyasztód van. (az alap 5v-os kapcsolást simán elviszi)
Én például a védelmére semmit nem kötök be, egyszerűen ha valami gond volt az áramkörrel szépen letiltott. (zárlat vagy nagyobb kondi...stb)
(#) spgabor hozzászólása Dec 2, 2014 /
 
Sziasztok!

Abszolút kezdőként első projektemként egy időzítőt szeretnék készíteni pic segítségével. A programozás oldala az talán nem fog gondot okozni, bár majd kiderül... Egyenlőre még az elektronika tervezésének problémájával küzdök. Ezzel kapcsolatban kérdeznék.
Az egész egy időzítő áramkör lenne. Itt a HE-n már publikáltak egy ilyet, viszont az enyém eltérne pl az kijelző megvalósításában is (találtam itthon régi pénztárgépek 4*hétszegmenses kijelzőjét SDA2131-gyel meghajtva). Ez miatt később lehet, hogy fogok még kérdezni, valamint a forráskódját C-ben szeretném írni.
A konkrét problémám most az lenne, hogy elégé elvesztem a relé választás terén. Annyit lehet kapni és az adatlapokba is kicsit belekeveredtem. Nekem a fogyasztóm a 12V-os tápfeszén keresztül kb 1,5-2A-t vesz fel. Ennek a ki-bekapcsolását kell megoldanom. Milyen relét tudnék használni, amit a pic lábáról vezérelve kapcsolgatná a fogyasztó tápfeszét? Vagy esetleg egy nagyobb áramú tranzisztor is elég lenne ehhez még?

Köszönöm a segítséget és üdv:
spgabor
(#) nedudgi válasza spgabor hozzászólására (») Dec 2, 2014 /
 
Mindenképpen kell legalább egy tranzisztor a relé vezérléshez, mert egy PIC kimenete legfeljebb 20-25 mA, rosszabb esetben 3 mA áramot tud leadni. Ha bőven van szabad láb, elképzelhető, hogy meg tudod oldani több láb együttes kapcsolásával, de a kézenfekvő megoldás a tranzisztor.
(#) spgabor válasza nedudgi hozzászólására (») Dec 2, 2014 /
 
Azt tudom, az nem is probléma. Amit említettem cikket, abban is egy tranzisztoron keresztül húzza meg. Viszont nincs benne konkrét relé típus és nem is tudom, hogy a milyet lenne megfelelő. A webáruházakban meg annyi féle van, elég széles árskálában, hogy nem akarok mellé nyúlni, így inkább kérdezek.
(#) Pali79 válasza spgabor hozzászólására (») Dec 2, 2014 /
 
Teljesen mindegy. Az adottságokhoz kell igazodni, méret és terhelhetőség, esetleg érintkezők száma tekintetében. Esetleg szempont lehet, hogy minél kisebb legyen a relé áramfelvétele, de nem hinném, hogy nagy különbségek vannak.
(#) spgabor válasza Pali79 hozzászólására (») Dec 2, 2014 /
 
Akkor egy ilyen megfelelő lesz nekem.
(#) tibike32 válasza usane hozzászólására (») Dec 2, 2014 /
 
Szia!

A múltkor segítettél a fordításban . Hová szúrtál be egy sort ?
(#) edison14 hozzászólása Dec 3, 2014 /
 
Sziasztok!

Volna egy kis gond az egyik programommal. Valamiért a PCL értékét nem úgy növeli a program ahogy kéne. Először ugrik rendesen, utána megint ugyan oda. A harmadik ugrásnál 2 vel ugrik tovább ami jó de utána megint csak kettővel holott 3-al kéne. A counter értéke mindig megy feljebb az jól működik csak azt nem értem, hogy 2 napja ez a programrész egy másik vezérlőn tökéletesen működött. Nem tudom mi lehet a probléma már fél napja agyalk rajta de semmire sem jutottam. A vezérlő PIC18F26K80.

  1. movf    count,w ;counter
  2.         call    msg2            ;call text table
  3.         iorlw   0x00            ;when return zero then sleep
  4.         btfsc   STATUS,Z        ;checking zero bit
  5.         goto    next1
  6.         call    LCD_Data        ;write character
  7.         incf    count,f       ;increment counter
  8.         goto    msgwrite2
  9. next1:
  10.         sleep
  11.        
  12. msg2:   addwf   PCL,f
  13.                 dt              "U2=00.0 I1=0.00",0
(#) erdiboni hozzászólása Dec 3, 2014 /
 
Sziasztok!
Ma kezdtem el a PIC-ekkel foglalkozni tehát teljesen kezdő vagyok. Pickit3+demo kártyával+pic 16f1829 -el ennek a videónak az alapján megpróbáltam világításra bírni a ledet, de a program megírásánál gondok akadtak (képen látszik).
A Build Main Project gombra nyomva ez történt. Hol rontottam el?
(#) nedudgi válasza erdiboni hozzászólására (») Dec 3, 2014 /
 
Nincs beállítva a projektben, hogy MASM kellene a fordításhoz. Az XC8 nem tud mit kezdeni egy .asm programmal.
(#) erdiboni hozzászólása Dec 3, 2014 /
 
Azt hogy lehet megoldani?
(#) nedudgi válasza erdiboni hozzászólására (») Dec 3, 2014 /
 
Nem tudom. Nem használom az MPLab X-et. Gondolom, a projekt tulajdonságai körül kell keresgélni.
(#) erdiboni hozzászólása Dec 3, 2014 /
 
XC32 megbirkózik vele?
(#) nedudgi válasza erdiboni hozzászólására (») Dec 3, 2014 /
 
MPASM. Minden XC kezdetű "C" nyelven írt programot vár.
(#) erdiboni hozzászólása Dec 3, 2014 /
 
MPASM-mel ezt írja.
(#) edison14 válasza erdiboni hozzászólására (») Dec 3, 2014 /
 
Rossz az include file neve pajti

  1. #include  <p16f1829.inc>


Írd oda ezt ezzel már működnie kellene.
(#) nedudgi válasza erdiboni hozzászólására (») Dec 3, 2014 /
 
Javul! Van olyan fájl, hogy "pic16F1829.inc"?
(#) erdiboni hozzászólása Dec 3, 2014 /
 
Még mindig ugyan az a baja!
(#) erdiboni hozzászólása Dec 3, 2014 /
 
Mindig a 7. vagyis a config sorral van baja
(#) edison14 válasza erdiboni hozzászólására (») Dec 3, 2014 /
 
Próbáld meg így:

MXPLABX - WINDOW menü - PIC Memory views - Configuration bits

Miután beállítgattad azután kattints a generate source code to output-ra és másold be a generált kódot a programodba amit beírtál configot pedig töröld ki.
(#) erdiboni hozzászólása Dec 4, 2014 /
 
Na ez megvan. Már csak az RP0 -val van baja .
Error[113] C:\DOCUMENTS AND SETTINGS\BONI\MPLABXPROJECTS\R.X\NEWASMTEMPLATE.ASM 15 : Symbol not previously defined (RP0)
Következő: »»   600 / 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