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   215 / 1208
(#) n_yálastrubadúr hozzászólása Feb 25, 2012 /
 
Köszönöm. Az INTCON,T0IF akkor is egyre vált túlcsorduláskor, ha nincsen a TMR0 megszakítás engedélyezve?
(#) potyo válasza n_yálastrubadúr hozzászólására (») Feb 25, 2012 /
 
Igen, a Flag bitek 1-re váltanak függetlenül attól, hogy az Enable bitek hogy állnak.
(#) Stefan válasza icserny hozzászólására (») Feb 26, 2012 /
 
Köszi
(#) n_yálastrubadúr hozzászólása Feb 26, 2012 /
 
Sziasztok!
Szerencsés TMR0 megszakításban pl A/D átalakítás sample time vagy egyéb késleltető rutint hívni?
(#) vicsys válasza n_yálastrubadúr hozzászólására (») Feb 26, 2012 /
 
Szerintem jobban jársz, ha bebillentesz egy flag-et és a fő rutinodban elvégzed a műveletet. Utána visszabillented a flag-et. Csak egy feltétel figyelés és egy bit értékű változó kell.
(#) n_yálastrubadúr válasza vicsys hozzászólására (») Feb 26, 2012 /
 
Köszi. Csak mert akkora zűrzavart csináltam magamnak, meg az mplab is bénázik. Tapasztalatom a 8.83-al valami nem jó a 8.56 nekem 2 nap bénáskodás után következtett erre. A másik a 16f887 qfn tokja nem az ami az adatlapon van! a google jobban tudja. Egy nyákot miatta el is rontottam. A problémáim meg halmozottak egy 887 kezeli az infrát, és jelzi a sebességet 0-99-ig ledekből összeállított decimális kijelzőn. Mostmár 24 bitet küldök. Továbbá ő küldi a 16f1826 nak a porta,1-re a 8 bitnyi szervó információt ami a szervón kívül a fetek terhelését és a kormány eltolását jelzi binárisan ledekkel. A külön pic-ek használata a kezdő pic tudásom miatt szükséges, és még így is gondot okoz. A szervóm ami egy a kínai kaki teljesen átváltoztatott játék autó (gyakorlatilag semmi sincs benne ami volt, -még a két motor se -) kormányát vezérli, ami néha beremeg főleg ha a +-15 nél nagyobb a rászerelt poti visszacsatolt A/D értékénél. Most megnézem 32Mhz-en hátha jobb. Vagy esetleg valami jó ötlet?
(#) El_Pinyo válasza n_yálastrubadúr hozzászólására (») Feb 26, 2012 /
 
Sok mikrokontroller rendelkezik olyan CCP modullal, amely képes Compare módban úgynevezett Special Event Trigger jelet szolgáltatni, melynek segítségével indítani lehet egy AD konverziót. Mindez teljesen automatikus, képes egy beállított mintavételi frekvenciával konvertálni. Az ADC megszakítás engedélyezése után csak a konverzió eredményét kell kiolvasni az ADC interruptban.
(#) n_yálastrubadúr válasza El_Pinyo hozzászólására (») Feb 26, 2012 /
 
Ezt feldolgozom. Az ötlet a nagyobb frekivel egyelőre exponenciálisan rosszabb. Meg már ez is sípol. A 4Mhz-es pwm-et sem lehet 200Hz-es freki alá állítani, ami a hátsó meghajtást is zajossá teszi. Milyen külső taggal kellene eltűntetni ezt a hangszóró hatást, mert idegesítő ez a trolibusz hang.
(#) vicsys válasza n_yálastrubadúr hozzászólására (») Feb 26, 2012 /
 
Léptető motorokat vagy sima DC-t használsz?
(#) n_yálastrubadúr válasza vicsys hozzászólására (») Feb 26, 2012 /
 
Sima dc.
(#) n_yálastrubadúr hozzászólása Feb 26, 2012 /
 
De gondolkodom, hogyan lehetne azt elérni, hogy egyáltalán ne remeghessen be a szervó? Egy nagyon igényes képet csatoltam a zöld a poti a feketék a kerekek a piros meg a motor csatlakozása a fogasléchez ami a potit rángatja. Na most 0-256-ig lenne a pozíció, de gondolom mivel hirtelen jobbra kéretik túlránt visssza balra és így tovább tehát gyakorlatilag közelít. A mechanikai igénytelenséget figyelembe véve hogyan lehetne ezt a rángást lehetetlenné tenni. Kompromisszum kész vagyok!

kép.JPG
    
(#) icserny válasza n_yálastrubadúr hozzászólására (») Feb 26, 2012 /
 
Idézet:
„hogyan lehetne azt elérni, hogy egyáltalán ne remeghessen be a szervó?”
Gondolom, PID szabályozóval. Az az arányos (P - proportional) tagon kívül a hibajel idő szerinti deriváltjával és integráljával arányos tagokat is tartalmaz.

A differenciálásnak köszönhetően "előrelátó" lesz, az integráló tagnak köszönhetően pedig hosszú távlatban a kis hibákat is kiegyenlíti.
(#) n_yálastrubadúr válasza icserny hozzászólására (») Feb 26, 2012 /
 
Értem. Tehát ez folyamatos tesztelgetés és mégtöbb tesztelgetés nélkül kivitelezhetetlen, merthogy a hibajel az igénytelen mechanika miatt mégcsak nem is állandó.
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Feb 26, 2012 /
 
Szia!

Stabilitás. A berezgés körerősítés függvény frekvenciamenetével van összefüggésben. Ez egy holtidős, kiemelésekkel tarkított szabályozott szakasz. A legegyszerűbben egy jó nagy időallandó bevitelével stabilizálható a rendszer.
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Feb 26, 2012 /
 
Igen, ez egyszerűbb mint a komplett a wikipédián olvasott PID szabályzás. Valahogy úgy kell méretezni hogy a reagálása ne legyen lassú de ne is rángasson.
(#) cNobody válasza n_yálastrubadúr hozzászólására (») Feb 26, 2012 /
 
Próbáltál már átlagolni? 5-10 AD konverzió értékét átlagolni, hogy a rángatás megszűnjön.
(#) n_yálastrubadúr válasza cNobody hozzászólására (») Feb 26, 2012 /
 
Ezt is megpróbálom.
(#) cNobody válasza n_yálastrubadúr hozzászólására (») Feb 26, 2012 /
 
Persze ki kell tapasztalni hogy mennyi az a minimum darabszám amikor megfelelő lesz, de még nem lassul be a rendszer. Ez lehet 10-nél vagy akár 20-nál is több.

Vagy megpróbálni az AD felbontását megnövelni, hogy ne 256 (8bit) legyen, hanem mondjuk 1024 (10bit).
(#) n_yálastrubadúr válasza cNobody hozzászólására (») Feb 26, 2012 /
 
Annyit csináltam hogy az egész beállító rutin minden 256. körben kikapcsolja a kimeneteket, ezzel egy kicsit visszavettem a nyomatékából. Most +-10 megközelítéssel elfogadom. Valószínűleg marad is ha az egész rendszer rendszerezésében nem jut jobb. De nem is nagyon egyszerű már csak azért se mert a fogasléc is durva. Összesen 12 fog van rajta, ha a kettő közé esik az érték akkor az külön probléma félállásban tartani a mocit. Teszek fel képet. A távirányító az már volt minden Még csak teszt szintű.

P1070590b.JPG
    
(#) n_yálastrubadúr válasza cNobody hozzászólására (») Feb 27, 2012 /
 
Egyébként az átlagolásnak mi a legegyszerűbb módja? Gondolom nem kell ha 50 mintát veszek 50 segédregiszter? Nem csináltam még ilyet, és a több byte-os műveletek is homályosak, szintén a szorzás és osztás is. De szívesen tanulok.
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Feb 27, 2012 /
 
Szia!

- Nem célszerű decimálisan kerek számokkal gondolkozni, igkább 2 valamelyik hatványával, ekkor egyszerűsödnek a műveletek. 50 helyett 32 vagy 64. Az osztás léptetésekkel valósítható meg...
- Egy eljárásgyűjtemény. Már nem is számolom, hanyadszor linkelem...
(#) n_yálastrubadúr válasza Hp41C hozzászólására (») Feb 27, 2012 /
 
Tudom, hogy rengetegszer küldted és szinte nekem,általában. De annyira gyér az angol tudásom, hogy az sem megy hogy milyen címszó alatt van az 'átlagolás'.
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Feb 27, 2012 /
 
Szia!
- Az átlagolásra az előző hozzászólásom első fele vonatkozott...
- A link a szorzás (math - multiply), osztás (math - division), 8 bitnél hosszabb összeadás (math - addition), kivonás (math - substraction) stb. műveletekhez ad kiindulási pontot. Ide talán jó a Google fordítója is..
(#) maestro hozzászólása Feb 27, 2012 /
 
Sziasztok!
Azt szeretném kérdezni, hogy egy PIC meghalhat úgy, hogy csak az MCLR láb kapja 10kohm-on keresztül az 5V-ot, majd programozási módba átkapcsolva közvetlenül a 12V-ot? Tehát a Vdd nem volt bekötve (panel hiba).
Illetve a PGC, PGD kapott még azt hiszem 5V-ot a programozóból (watt féle lpt-s programozó, v4).
És rövid idő múlva észre vettem, hogy erősen melegszik az IC, a Vpp az MCLR-be 160mA-t pumpált!!! Ennek mi lehetett az oka? Emiatt betettem egy ellenállást a Vpp és MCLR közé, bár a rajzokon úgy néztem nem tesznek be. Vagy mégis kellett volna oda egy ellenállás?
WinPic 800 egyébként a hardware tesztre Ok-t ír, bár a PIC-et nem ismeri fel. De volt olyan is, hogy más típust ismert fel minden egyes lekérdezésnél.
Billegtetve az LPT port bitjeit (D0,D1) rendesen változik a feszültség 0 és 5V között a PGD és PGC vonalakon, illetve az ACK is megfelelően változik.
Szóval nem értem mi lehetett a hiba.
(#) hepi02 hozzászólása Feb 27, 2012 /
 
Sziasztok!

Két impulzussorozatom van, amit monostabil multivibrátorként 555-ös IC-vel uniformizálok(azaz állandó amplitúdójú és szélességű impulzusokká alakítom). Ezt a két formált jelet egy picben használnám fel. A kérdésem pedig az lenne, hogy hogyan tudnám megetetni a pickel ezeket a jeleket? Esetleg számoljam a megszakításokat közvetlen a pickel?

A lényeg a lényeg, hogy a két fototranzisztorról érkező eltérő mennyiségű megszakítás különbségét szeretném mérni meghatározott idő alatt.

Előre is köszönöm szépen a segítséget.
Ádám.
(#) kissi válasza hepi02 hozzászólására (») Feb 27, 2012 /
 
Többféleképpen is lehet... pl. a jelek léptetnek egy-egy TIMER-t és a feldolgozás végén kiszámolod a különbséget, vagy az 555-ös jelek egy-egy megszakítást okoznak és ott léptetsz saját számlálókat, a vége ugyanaz, vagy csak simán figyeled a lábakat és megfelelő él esetén léptetsz egy-egy hozzátartozó számlálót.
Nem írtad le, hogy a jelek milyen gyorsak, mennyi ideig tartanak, milyen PIC, stb. !

Steve
(#) hepi02 válasza kissi hozzászólására (») Feb 27, 2012 /
 
Picket szándékosan nem írtam, mert előbb körvonalaznám, hogy mit is akarok és aztán keresek hozzá való picket. De hirtelen egy 16F628A van kéznél.

A jelet egy megvilágított fototranzisztor veszi, és egy 9 lyukú tárcsa szaggatja a fényt.

Egy pickel egy sorozatot megtudok számolni mégpedig úgy, hogy a pic egyik lábát húzgálom alacsony vagy magas szintre, amit a picben számolok. De sajnos én még egy jelet csak egy újabb pickel tudok megszámolni. Volna esetleg olyan pic, amivel egyszerre tudnám számolni párhuzamosan a kettőt?

Kezdő vagyok minden téren, csak tapogatózom.

Egyébként egy fogyasztásmérőt szeretnék készíteni mégpedig 2db trabant átfolyásmérőből. A műszerek pontatlanságától most tekintsünk el, itt most a pic oldala érdekel csak.
(#) kissi válasza hepi02 hozzászólására (») Feb 27, 2012 /
 
Az a "gyorsaság" bőven megszámolható egy PIC-el és a 628-ban van is 2 timer, ami számolhat külső lábakról jeleket... a többit már leírtam. Ha még kezdő vagy, akkor ne ezzel az összetett feladattal kezdjél, hanem a részfeladatokat próbáld ki ( egyesével a TIMER-eket ), majd az így szerzett tapasztalatokat építsd be a végleges projektbe!

Steve
(#) Hp41C válasza maestro hozzászólására (») Feb 27, 2012 /
 
Szia!
Milyen típus volt?
(#) vilmosd válasza hepi02 hozzászólására (») Feb 27, 2012 /
 
A 16F628 RB4-7 portja rendelkezik egy interrupt-on-change tulajdonsaggal, ami erre a feladatra kivalo. Engedelyezni kell az RB IT-t es az interrupt rutinban el lehet donteni melyik lab valtozott. Majd aszerint, hogy melyik lab valtozott, egy-egy szamlalot novelni. Igy akar 4 esemenyt is szamlalhatsz kulon-kulon. Melle meg van a RB0 INT IT, ami hasonlo tulajdonsagokkal rendelkezik, csak itt a valtozas iranyat is meg lehet adni. Viszont alkalmasabb lenne a 16F684-690 sorozat, mert itt lehet maszkolni a kivant labakat, es csak azok fognak IT-t kerni amelyek engedelyezve vannak.
Következő: »»   215 / 1208
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