Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Mennyi a valóságban? Állandóan annyi vagy változó?
Progit csatolsz?
Az oszcillátor frekvencia negyedét kell alapul venni! Ha alacsonyabb frekvenciát veszel, akkor még a 30 mp is elérhető külön számlás nélkül.
Idézet: „Mert akkor gondolom, növelgetni kell egy pl: timer_db nevű 0-ról induló változót” Inkább csökkenteni egy x-ről indulót, amig 0 nem lesz, de ez részlet kérdés.
a valóságban 8mp.
Kódot mit csatoljak, hiszen ez csak hardver rutin. TMR0 felprogramozva az elöbb említettek szerint, és tulcsordulásnál megszakítás, amikor felkapcsol vagy elolt egy lámpát (ez csak a teszt).
:wave: Hahó! Mondom, hogy a freki negyedét kell a számolásnál venni! Tehát 8 MHz-nél 2 MHz-et, ezért 8 mp (vagy egy kicsit több).
Oké értem, de ez miért van, hogy a negyedével kell számolni?
Adatlapot ezek szerint nem nezted? Legjobban ugy tanulhatsz ha magad keresgeled a valaszokat. Ha pedig vegkepp nem talalod akkor kerdezed meg.
Nézd meg a Timer0 blokkvázlatát az adatlapban (11-2). Láthatod, hogy az oszcillátorfrekvencia negyedét kapja (Fosc/4)...
Idézet: „Oké értem, de ez miért van” A miértekről kérdezd meg a microchip fejlesztőit!
Igazad van!
Pedig nézegettem, de ez nem tűnt fel.
Helló!
Régebben írtam ezt a progit, próbáld ki!
Jó kis program, én is szoktam ilyesmiket csinálni, csak excel-ben. Csatoltam egy példát ötletadónak...
Hello!
Talán, mert egy ütem végrehajtása 4 órajelből áll. Ha a Timer ennél gyorsabban számolna, akkor egy ütem alatt többször is "beköszönhetne", amit a proci nem venne észre. Akkor meg azért reklamálnánk. üdv! proli007
Sziasztok.
Nemrég építettem egy potyo féle usb-s ICD" klónt. A 3. változatot. Az induktivitás ami eredetileg benne van melegedett nagyon ezért tettem bele egy 150 és két 100mikrohenris tekercset de így is melegszenek nagyon( füstölnek is ha sokáig hagyom menni). A másik kérdésem az lenne hogy az íráshoz a jumpert a Vpp és a Cmos-en re kell tenni? Válaszotokat előre is köszi.
Az újabb PIC-eken egy gépi ciklusra egy Timer számlálás esik. Tehát meg lehetett oldani. Ettől még neked igazad van.
Hello!
Szerintem, meg átverés az egész. Gyanítom, hogy ott is egy gépi ciklus, négy Q órajel ütemből áll, csak procin belül. Épp csak más viszonyban van a Q ütem, az órajellel. Így látszólag egy órajel ütemre egy gépi ciklus zajlik le. De a gépi cikluson belül az INTR-nek megatározott vizsgálati ideje van. Tehát egy gépi cikluson belül, nem lehet két INTR feldolgozás. Persze a gépi cikluson belül, az INTR akkor jön, amikor akar, mert azt egy hardveres élvezérelt tároló tárolja. (logikám szerint) A PLL-es órajel meghajtásnak is csak az az értelme, hogy nem kell növelni a külső órajel frekit a végtelenségig, a gyorsabb proci miatt. (Bocs, a következetlen meghatározáspkért!) üdv! proli007
Majdnem. Két órajelre esik egy gépi ciklus, de csak a második utasítástól. Előbetöltéses történet.
De a perifériák ugynarról a Fcy-ról mennek, mint a PC, sőt, van mikor az Fosc-ról(PWM, AD, ...) Idézet: „Ha a Timer ennél gyorsabban számolna, akkor egy ütem alatt többször is "beköszönhetne", amit a proci nem venne észre. Akkor meg azért reklamálnánk.” Ezt most nem egeszen fogom. Mit jelent az a "bekoszonne"? PIC-kel siman lehet 50MHz-es freki szamlalot csinalni ugy, hogy a PIC oraja joval lassabban jar, mint a mert freki. Semmi koze a szamlalonak es a PIC belso orajanak, csupan annyi, hogy ha akarod lehet a belso ora is alapja a szamlalasnak - csak akkor ugye van ez a 4-es osztas...
Hello!
Az interrupt-ra gondoltam, csak slamposan fogalmaztam. Az nem jöhet be, csak egyszer egy gépi ciklus alatt. üdv! proli007 Idézet: „Az interrupt-ra gondoltam, csak slamposan fogalmaztam. Az nem jöhet be, csak egyszer egy gépi ciklus alatt.” Igen, ebben igazad van, de ettol fuggetlenul meg a szamlalas tovabb megy, es legkozelebb lehet egy gepi ciklussal korabban jon be, aztan megint kesobb stb, szoval atlagban megvan a szamlalo erteke es igy lehetseges magasabb frekvenciak merese viszonylag nagy pontossaggal.
Üdv!
A komparátor kezelését tanulnám 16f628-on. Valami egyszerű áramkört tudnátok javasolni a komparátor bemenetre amivel érdemben tudnám a programozást tanulni?
Egy példa: a komparátor egyik bemenetére teszel egy feszültségosztót, hogy azon a lábon a tápfeszültség felét mérd. A másik lába és a test közé egy kondenzátort, a láb és a táp közé meg egy ellenállást. Legyen mondjuk 470µF és 22kohm. A kondenzátorral párhuzamosan meg egy npn tranzisztort, amit a pic egy harmadik lábáról tudsz ki-be kapcsolni. Ezzel a kapcsolással tudod mérni,hogy mennyi idő alatt töltődik fel a kondenzátor a tápfeszültség felére. Nem lesz pontos a tranzisztor maradékfeszültsége miatt, de gyakorolni jó. És mellesleg ez kiindulási alap lehet kapacitásmérő építéséhez.
Szia Potyo. Felteszem ide is a kis hülye kérdésemet.
A segítségedet szeretném kérni. Nemrég megépítettem az usb-s ICD2 klónod 3. változatát. Az induktivitás melegedett ezért raktam bele egy 150 és két 100mikrohenris tekercset de még így is melegszenek. A másik kérdésem az lenne hogy írásnál a jumpert a Vpp és a Cmos-en közé kell rakni? Válaszod előre is köszi. Frecsko
Hello!
Hát én ezt nem így látom. Mert ha egy gépi ciklusban kétszer, vagy háromszor jött INTR, akkor azt honnan tudja a proci? A Te példád, szerintem arra vonatkozok, ha pld. 999/1000 gépi ciklus után jönnek az INTR-ek mndjuk 50%-ban, akkor előfordulásból lehet átlagolni a pontosabb eredményt a 999,5-öt. üdv! proli007
Mitol jonne 3x int egy utasitas alatt? Egy 8 bites timer eseteben ugye 64x (256/4) kellene, hogy nagyobb legyen a mert freki mint a core freki, hogy minden utasitasnal pontosan 1x jojjon interrupt elooszto nelkul... Ez azt jelenti, hogy 4MHz core eseteben 256MHz-et kellene meretni a PIC-kel. Ennyit valoszinuleg nem is lehet elerni mert nem eleg gyors hozza az aramkor.
Az en peldam arra vonatkozik, hogy pl egy 4 megas belso oranal egy 4 megas jelet merunk. Ekkor a 4 megas belso oranal ugye a core fsck/4-el "ketyeg" azaz egy gepi utasitashoz 1us kell. Ezalatt 4-et szamlal a timer elooszto nelkul. Namost az elso alkalommal a tulcsordulas a Q1 utemben mar megtortenik, de az interrupt csak a Q4 utem vegen kovetkzik be, amikor mar a szamlalo kozben 3-ig elszamolt. kiszamoljuk az eltelt idot, es megvan a mert freki, de kozben a szamlalo szakadatlanul szamlal tovabb. Kilepunk az interruptbol es megin Q1 utemben tulcsordul a szamlalo. Azonban ha a mert freki 1-2ppm-el elter, akkor elobb-utobb nem a Q1 hanem a Q2 utemben tortenik meg a szamlalo tulcsordulasa es igy tovabb. Namost ez volt az egyszeru eset, vegyunk alapul egy olyat, hogy 2MHz-et merunk ugyanebben a felallasban. Akkor Elso tulcsordulas Q1 utemben esik meg, masodik Q3, harmadik ismet Q1, negyedik pedig megint csak a Q3 stb stb stb utemben csordul tovabb. Ez a mechanizmus minden frekvenciara igaz. Akkor is ha elooszto van, az elooszto ugyanugy inkrementalodik, csak annak a tartalmat nem tudjuk kiolvasni, de ha a timert nem piszkaljuk akkor az ugyanugy szamlalgat tovabb. Tehat eloosztoval 256*256 szamlalas kell egy interrupthoz. Miert jo ez nekunk? Mert kozben jo sokat tudunk szamolni. 50MHz felso mereshatarnal es 4MHz core frekinel ez azt jelenti, hogy kb 1310 utasitast tudunk vegrehajtani... Ha ez nem elegendo az interrupt lekezelesere akkor a core frekit kell emelni, de a lenyegen ez mitsem valtoztat: siman merjuk a core-tol teljesen eltero frekit ami akar joval magasabb is lehet annal...
Nézd meg, hogy az induktivitás utáni dióda katódján megvan-e a kb. 12V. Ha nincs, akkor valahol zárlat van a nyákon. Hogy hová kell tenni a jumpert, az benne van a leírásban: potyo.extra.hu
Sziasztok! Előfordulhat az PIC esetében, hogy egy 32.768KHz-es kristállyal siet az óra? (7 óra után 5 másodpercet) Én abban a tudatban vagyok hogy csak késni tud... Mivel nem interrupt ciklusban van a másodperces megszakítás (TMR1IF), a TMR1H-t beállítom 128-ra. Szerintetek mi lehet a gond?
A viszonyítást a számítógép órájához végzem. A válaszokat köszönöm! üdv
Jó lenne, ha mutatnál kódrészletet. Az önmagában nem okoz problémát, hogy a TMR1IF bitet nem megszakításban kezeled le, amennyiben lekezeled még azelőtt, mielőtt újra bebillenne. Azt is írd meg, hogy milyen pic, mert attól is függ, hogyan kell a TMR1H-t feltölteni kezdőértékkel.
Persze, hogy előfordulhat, a kvarcok szórása miatt siethet és késhet is. Nem tudom, hogy alakítottad ki a kvarc áramkörét, de érdemes megnézni pl. a "28 pin demo board" kapcsolási rajzát, ott 2db 22pF van a kvarc mellett és van egy soros 220k ellenállás is. Hasonló kialakítással dolgozom én is a 16F946 mellett lévő órakvarcnál, az egyik példányom késik, a másik siet, viszont az Általad írtnál sokkalta kevesebbet. A sietős fél év alatt olyan 50 másodpercet szedett össze (netről szinkronizált időhöz szoktam hasonlítani).
|
Bejelentkezés
Hirdetés |