Fórum témák
» Több friss téma |
Úgy látszik egy olyan vitát sikerült (akaratlanul)
elindítanom ahol a maga szemszögéből mindenkinek igaza van ! Egyébként ha kíváncsi vagy arra hogy miként tud egy plc helyettesíteni , töltsd le a parsicot és nézz bele egy dcsabi által feltett progiba ! Hidd el tényleg komoly dolgokat lehet evvel létrehozni ! Az is igaz viszont hogy az ő programjai mögött komoly tudás áll és nem csak a parsic- de az asm sem idegen tőle . Ez egy gyors - és egyszerűen használható segédeszköz Amit ha nem találok meg még mindíg a 4017 - és 555 ic-k világában kódorognék , viszont amióta kipróbáltam (autodidakta elektronikai ismereteimmel) azóta elég sok okos dolgot sikerült megvalósítanom ! (pl kapu vezérlés , lcd-s levilágító időzítő) Lehet hogy egy ekkora projekt nektek csípőből jön , de nekem 45 évesen hatalmas sikerélmény !
Sziasztok. A vitát olvasva úgy nézem mindenkinek igaza van. Én tök kuka vagyok az asm-hez. Ha nézegetek egy kódot, lehet hogy nektek egyszerű, nekem fogalmam sincs róla mit miért csinál. Ha jól tudom a Parsic asm kódot generál, tehát szerintem nagyszerű eszköz lehet az asm megismeréséhez. Aztán ha belejött az ember, és közben nézegeti a kódot, megpróbálja kiismerni, többet fog segíteni mint egy száraz tankönyv. Azután már át lehet térni az assemblerre.
Idézet: „Én tök kuka vagyok az asm-hez.” Vannak kényelmesebb nyelvek is (pl. C, Basic, JAL), de nem hiszem hogy azt a 35 utasítást ne lehetne átnyálazni egy esős délután! Idézet: „a Parsic asm kódot generál, tehát szerintem nagyszerű eszköz lehet az asm megismeréséhez.” Ezt nem mondanám. Assembly programozást csak assembly nyelven írt mintaprogramokból és tankönyből érdemes/szabad tanulni. A Parsic-ot pedig ne erre használd, hanem gyors alkalmazásfejlesztésre!
Az a baj, hogy nem veszitek figyelembe a tényt, hogy a PIC egy áramkör és nem egy PC, amin alkalmazásokat írunk. Elsősorban az áramkör működését kell megismerni, és abból egyenesen következik az asm és abból a hex kódok összefüggése. Egy kész PLC már jobban hasonlít a PC-re, és a rá írt fejlesztések(pl. az OPTO 22 PAC Controllere), már jól kihasználja a kész áramkör sajátosságait. Megjegyzem, hogy 200MHz-es procival lassabb ugyanabban a célfeladatban, mint egy 10MHz-es PIC. Viszont könnyű rá fejleszteni, csak ne kerülj szembe egy kritikus feladattal, mert azt nem lehet megoldani vele(pl. extrém gyors beavatkozások, frekimérés, gyors visszacsatolt szabályzások, gyors adatgyűjtés). Amit ezek tudnak, az kb. 100ms mintavételezés és ez elég egy normál folyamat kezeléséhez, ami az iparban előfordul. Másra meg ott vannak a céláramkörök.
Namost a PIC nem egy PLC és nem PC, sokkal több a lehetőség hardveres sebesség terén. Nem erőből(MHz), hanem áramköri kialakítások, összehuzalozások(CCP, PWM, stb) segítségével oldja meg a feladatot. Ha nem ismered az áramkört, nem tudod kihasználni a lehetőségeit. Persze sokmindent meg lehet írni Parsic-ben is, de lesznek olyan feladatok, amiket még C-ben sem. Kérdés mit akar a felhasználó? Ha nem akar belemélyedni, és azok a feladatok megoldhatók magasabb szintű nyelvekkel, akkor nincs szükség asm-ra, bár hogy miként fog tervezni egy áramkört a PIC köré, ha nem ismeri nem tudom. Ha meg ismeri, akkor meg nem lehet gond a gépi kód megértése sem, mivel ez egyszerű bináris logika. Nem is kell eldönteni melyik a jó, vagy jobb, azt kell eldönteni, mit akarunk, megismerni a lényeget, vagy kapirgálni a felszínt. Egy amatőr szerintem vágyik a részletek után, egy felhasználó pedig a feladatra koncentrál. Szabad a pálya!
Segítségeteket szeretném kérni a kővetkező problémámba:
BTFSS GPIO,0 GP0-ra szerelt gomb megnyomására nem ugrik. Miért lehet ez?
Szia!
bemásoltam az IC adatlapjáról a port inicializálását... bcf STATUS,RP0 ;Bank 0 clrf GPIO ;Init GPIO movlw 07h ;Set GP<2:0> to movwf CMCON ;digital IO bsf STATUS,RP0 ;Bank 1 clrf ANSEL ;Digital I/O movlw 0Ch ;Set GP<3:2> as inputs movwf TRISIO ;and set GP<5:4,1:0> ;as outputs valószínű,hogy az AD konvertert kell előbb tiltani és csak akkor működik a port, Valamint a TRISIO regiszteren be kell állítani az adatirányt (alapból ha jól tudom bemenet)
Szia!
Volt picit több időm tehát: A port alapból bemenetként van definiálva. Az ANSEL porton kell beállítani, hogy ad konvertert, vagy digital i/o regisztert akarsz használni az adott lábon. A port adatirányát a TRISIO regiszter hatátozza meg. a nullára állított bit kimenet lesz. A TRISIO regiszter alapból nem elérhető, ramot lapzni kell, (1. lap) majd visszaállítani. 0. lap A programot pedig célszerű úgy indítani, hogy kezdési cím ugye a 0 (org 0) A probléma ott van, hogy egy goto ugrással el kell ugorni a programmal máshová, mert a megszakítási rutin (0x04) címen kezdődik.Most ugyan nem használsz még megszakítást, de erre figyelni kell. Aztán van még egy utasítás a CLRWDT (Clear Watchdog Timer) ami nulláz egy belső időzítőt, ha az az időzítő túlcsordul, akkor a PIC végrehejt egy resetet., tehát bizonyos időnként el kell helyezni egy ilyen utasítást, vagy ai IC beégetésekor tiltani kell a Watchdog Timer-t. Ha egyéb segítség kell írjál. üdv.: Foxi
Nagyon köszönöm a gyors válasz .
"Ansel alapbol nem elérhető,LAPOZNI KELL" Ezt egy kicsit nem értem,hogy valósítom ezt meg! A többit nagyjából értem.
Mivel az adott IC lábon van egy analóg digitális átalakító bemenet, és van egy TTL be vagy kimenet, ezért az ANSEL regiszterben (ami kiválasztja hogy melyik lábról olvas analóg adatot)nem lehet kiválasztva az adott láb, amin egyébként egy TTL szintet vársz
tehát bsf status,rp0 ;memórialapozás(hozzáférünk 0x80 -0xff ig a felső laphoz) clrf ANSEL ; egyetlen bitet sem sem akarunk beolvasni az ad konverterbe movlw 0xfe ;0.bit kimenet a többi bemenet; movwf trisio;ezzel állítjuk be az adatirányokat a porton bcf status,rp0 ;memória visszaállítása(0x00- 0x7f) A memória lapozás azért kell, mert csak 0-7f ig látja a "proci" a memóriát mivel a vezérlő regiszterek felső lapon vannak, ezért átállítod a státusz regiszter rp0 bitjét, és ekkor az adat már a felső lapra kerül. Nagyobb PIC ben van rp1 is és akkor 4x 128 byte memória van.... Ha az adatlapot megnézed akkor a GPIO helyén van a TRISIO csak egy lappal feljebb. Valamint hogy az élet ne legyen egyszerű létezik un. felhúzó ellenállás is a port lábaihoz, de ezek alapesetben nincsenek bekapcsolva, Ha az alkalmazás megkívánja, akkor hogy ne "lebegjenek" a bemenetek módod van ezt bekapcsolni. Remélem ezekután boldogulsz, ha nem megírom a progit, mondjuk, hogy amíg a nyomógomb meg van nyomva egy led világítson. Remélem az MPLAB-ot használod, mert akkor abban van szimulátor is ,és mindent le lehet benne szimulálni.Lépésről lépésre mutatja az egyes regiszterek változását.üdv.: Foxi
Idézet: „"Ansel alapbol nem elérhető,LAPOZNI KELL" Ezt egy kicsit nem értem,hogy valósítom ezt meg!” Nem vagy egyedül, én sem értem, ugyanis a PIC12F629-ben NINCS ANSEL regiszter! Ami viszont kell: a CMCON regiszterbe kell 7-et írni, az analóg komparátor letiltására. Az adatlap ajánlása GPIO inocializálására:
A fentiek helyett inkább így írd:
- A clrf ANSEL tehát nem kell (PIC12F675-höz kellene!) - Amelyik helyiértékre TRISO-ban 1-et írsz az bemenet lesz. - Figyelem, az MCLR lábon a RESET funkciót le lehet tiltani, de csak bemenet lehet, kimenet nem. - A "banksel regiszternév" makró arra a memórialapra vált, amelyikben a megnevezett regiszter van. - Inicializálás után azért érdemes visszaváltani a GPIO regisztert tartalmazó lapra, mert feltehetően azt fogod a későbbiekben matatni.
Köszönöm igy már érthető!
Most már csak azt nem értem mért kapok hibát az Mplab-nál az ANSEL-re!(Symbol not previously defined (ANSEL)
Szia!
azért mert én elszúrtam!!! az adatlap közös a PIC 12f675 -el, és a tiédben nincs AD átalakító, tehát azt a részk ki kell hagyni, de a többi oké Elnézésedet kérem.....
Nagyon köszönöm mindkettőtöknek a segítséget már működik is.
Hali!
csak megírtam, és csak belepofázott valami.: movlw 07h ;Set GP<2:0> to movwf CMCON ;digital IO Hogy használható legyenek a a port TTL be-ki menetei, ahoz ezt is be kell írni
Szia!
1. Utasitasok elott minimum egy space kell, de ajanlott rendesen indentalni (4 vagy 8 vagy akar joval tobb space -- TAB=ot is lehet hasznalni bar azt nem tartom jo otletnek) 2. Cimke utan nincs kettospont -- az a sor legelejen kezdodik, innen tudja a fordito, hogy az cimke es nem utasitas vagy mas direktiva... 3. Ezek a JZ, JNZ stb makrok mar Microchip altal el lettek keszitve, felesleges munka volt ujra megirni ezeket. Nezdd at a Help-ben az Assembly-nel a Reference-t, annal is a 12/14 bit Instruction with pseudo instructions -t 4. Az a stack az nekem nagyon nem tetszik, nem kellene PC szintu buffer overrun vulnerability-t beepiteni a PIC-ekbe 5. A bank valasztast BANKSEL-lel csinaldd, ne ilyen STATUS bit billegtetessel 6. A STATUS biteknek megvannak a neveik, a szamokat tessek szepen lecserelni a megfelelo szimbolumokra - kisebb hibalehetosegek, konyebb attekinthetoseg (erdekes, hogy az RP0-nal hasznalod, mashol nem) 7. OPTIONS-t (fuse biteket) nem latok a forrasban, azokat bele kell tenni, hogy egyreszt a forrasban legyen dokumentalva masreszt biztos legyel benne, hogy az opciok forditaskor megfeleloen vannak beallitva 8. A "C:\Program Files\Microchip\MPASM Suite\Template\Code\12F629TEMP.ASM" jo kiindulas lehet mikor uj kodot kezdesz irni...
Pic órajel kérdés. Több pic külső kvarc generátorról (dupla schmitt trigger kapuval)
Kellemetlen sztorit hallottam egy 18f4520-asról, hogy srác pic belső 8mhz oszcillátorról akart frekvencia szorzóval elsődleges órajelet gyártani, és arról meghajtani a picet. Állandóan lefagyott. Amennyire helyi szaki elfilozott az eseten, valószínűleg vacak volt a belső oszcillátor jelalak, és a PLL nem szerette. Kapott kvarcot az áramkör, és rendesen ketyegett. Nem a szoftver volt a rudas. Szóval jár az agyam, és már rosszakat álmodok. Jelenleg terv szintjén van egy kapcsrajz, amiben 2 darab ds33F lenne (spdip tokosak, foglalatot kapnak, ami nyákfuratba kerül, nem smd), és közös órajelet akartam nekik adni schmitt triggeres generátorról, arról hajtanám meg a belső szorzót (azoknál a piceknél kötelezően szorzón megy keresztül a jel). 4MHz jelet vinnék a nyákon, tervezetten nem hosszú vezetéken, de biztos meglesz pár centi, és ha nincs szerencsém, dupla via-n is át kell vinni. Jelalak nem tudom. Abból a négyszögből tuti valamennyire trapézosabb jel lesz az ideális négyszögnél, amennyire átlag várható. Szóval a kérdésem annyi, hajtott-e már így valaki közös órajelről több picet külső generátorról? Elméletben persze mennie kellene, mint a fentebbi 4520-asnak is, de most inkább mások tapasztalata érdekelne. Részemről híjján vagyok ilyen tapasztalatnak.
ICD2-ben 20MHz-et vittem kb. 3 centire, meg egy próba alkalmával dróttal még messzebb is, semmi gond vele. Az egyik PIC mellé van a kvarc drótozva, adatlap szerinti közepes kapacitású kondenzátorral, atomstabilan megy. Ennek a PIC-nek az oszcilátorkimenete megy a másik PIC oszcillátorbemenetére, és az is HS módba van programozva, így biztosan nem okoz neki gondot a trapéz jel, mert a kvarcról is színusz menne neki be. Én feleslegesnek tartom a külső generátort is, ha van oszcillátor a chipben, ami meg tudja hajtani a kvarcot.
Olvastam már olyat, hogy egyes PIC típusoknál nehezen indul be a PLL, s sikeresebb, ha menet közben történik a bekapcsolása (tehát parancsokkal és nem a konfigurációs bitekkel).
PIC24HJ128GP502 és dsPIC33FJ128GP802 gond nélkül ment 80 MHz-en a belső (7,37 MHz-es) FRC oszcillátorról. A beállítás módja a PICkwik projekt "Kísérleti áramkör" c. fejezetének végén (LED villogtató program II.) látható.
Szia!
Én is a Potyo kollega leírásának megfelelően alkalmaztam régebben gond és ICD2 nélkül, protoboardon ( 20 MHz-es órajellel, P16F876A volt ). Steve
Sziasztok!
Most kezdtem el ismerkedni a PIC-kekkel, és ezzel kapcsolatban lenne néhány kérdésem. Milyen PIC típussal kezdjek el foglalkozni? Itt több cikkben láttam a 16F877-et, de fórumban olvastam, hogy célszerűbb már 16F887-el foglalkozni. Vagy valahol kezdőknek ajánlottak 18F típusokból is. Másik kérdés a programozó. Több helyen olvastam, hogy célszerű ICD2 programozót készíteni, mert megbízhatóbb, csak ezzel annyi a problémám, hogy felprogramozott PIC-kel működik. Tehát kezdésnek mindenképpen valamilyen más típust kell építenem. Pl. a "Nulláról a robotokig - PIC Mikrovezérlők I rész" című cikkben említett JDM programozó először megfelelő? Egyelőre ennyi kérdésem lenne, előre is köszönöm a segítségeteket. Adam
Ha egy kicsit visszaolvasol : láhatod kb 50 esetben írták le hogy a jdm nem programozó ! Az csak valami hasonló dolog . Inkább építs pickit 2 -t egységcsomagban felprogramozott piccel kb 4000ft -ért megkapod , csak össze kel rakni .
Köszönöm a segítséged!
Meggondolom lehet veszek egy PicKit-et, amúgy hol lehet ilyen egységcsomagot kapni? Én csak a gyárit láttam a Chipcad-ben. Ha esetleg gyárit veszek, akkor érdemesebb a pickit 3-at venni, vagy elég a 2-es is? Illetve mindkét verzióból látok olyan csomagot, hogy programozó, és Debug Express. Érdemes megvenni a Debug Express-t, vagy elég a programozó? Úgy néztem a Debug Express annyival több, hogy jár hozzá néhány CD, meg egy demo panel egy PIC-cel. Valamint továbbra is az lenne a kérdésem, hogy milyen PIC-kel lenne célszerű kezdenem? Üdv: Ádám
Nézz fel az oldalamra, ott olvashatsz egy véleményt és sok infót a kezdéshez.
Nekem pickit 2 -m van és meg vagyok vele elégedve
Ha tudsz magadnak csinálni "demópanelt " elég ha csak a pickit2 -t veszed meg .
pickit3:
Nagyjából 1 hónapja volt egy kis botrány a pickit 3 körül, nevezetesen hogy nem csak az új feature-ök nem működnek rajta, de még a régiekkel is vannak problémák. Arról nem sikerült információkat szereznem, hogy az eszközzel elektronikailag is bajok vannak-e, vagy egy firmware frissítés meg tudja oldani a gondot, ami van. Mindenesetre az a pickit3, ami most a chipcadnél kapható, még jó esélyekkel az eredeti széria. Akinek vannak konkrét információi, szívesen veszem tőle a felvilágosítást.
PICkit3 korul sok problema volt/van. Egy dolog pozitiv csupan: A hardware design jobb... De kb ennyi.
Talan a legnagyobb botranyt egy Ausztral ficko csinalta a video blogjaval (EEVblog #39) Noha a blog stilusa sokak szamara eleg fura volt, a lenyegre azert sikerult felhivnia a figyelmet, nevezetesen: 1. PICkit3 nem, vagy nem feltetlen gyorsabb, mint a PICkit2 2. PICkit3 nem rendelkezik az osszes funkcionalitassal, amivel a PICkit2 (pl. logic analyzer es UART hianyoznak, programmer-to-go is hianyzik) 3. Nincs tamogatas mas operacios rendszereken, sot csak es kizarolag MPLAB alol lehet hasznalni -- ellentetben a PICkit2-vel, aminek eleg jo tamogatottsaga alakult ki az evek sran, beleertve Linux es MacOSX klienseket 4. PICkit3 megvaltoztatta a LED-ek elnevezeset aminek semmi teteje sincs 5. PICkit3-nal minden egyes PIC tipushoz ujabb firmware-t kell letolteni a programozora, ami megneheziti a hobbi elektronikaval foglalkozok ill. kisebb cegek eletet Hirtelen ezekre emlekszem, lehet volt meg mas is. Mindenesetre a Microchip vezetosegeig eljutott a video blog, es egy meglepo, vicces es ugyanakkor bizakodast ado video klippel valaszoltak: Microchip Response to PICkit 3 Review from EEVblog #39
Azért annyira még lehettek volna igényesek, hogy ha már bocsánatkérésnek szánták a dolgot, legalább a saját válaszukhoz egy feliratot is gyártanak, mert így a szélesebb közönségnek nem sok jön le a humorból.
Annyit kapnak csak, hogy "a pickit3 sza*, mert a Microchip még odafigyelni is lusta volt".
Szevasztok!
Pic-kel szeretnék frekvenciát mérni, arra gondoltam hogy egy egyszerű rezgőkör frekvenciáját mérném meg, jó lesz az vagy egy kicsit bonyolultabb áramkört kel építeni? Meg arra godondoltam hogy 1MHz alatthoznák létre. Végülis ebben kellene segítség. A frekvencia mérés lenne nekem a lényeg.
Kösz a segítséget, de igazából egyszerűbre gondoltam. Azért mert ez egy feladat hogy pic-el mérjünk frekvenciát, de kel valami amit mérni lehet, ezért is gondoltam, hogy egy rezgőkört mérnék. De most keresgetem és nem e lehetne használni egy oscillator ic-t aminek a kimenetét kötném a pic-re? pl CD4541
|
Bejelentkezés
Hirdetés |