Fórum témák
» Több friss téma |
Üdv!
Az egyik olyan 16bit-es számlálót kell használnod, aminek van külső órajel bemenete. Arra megy majd a mérendő jel. Viszont ezt a jelet kapuzni kell. 1s-os GATE-el 65535Hz-ig tudsz majd mérni 1Hz-es felbontással. 100ms-os GATE-el már elérhető az 50MHz is, de előosztót kell a Timer-nél beállítanod. Bővebben: Link innen el tudsz indulni, ha tanulmányozod a programját.
Ha a mérés alatt még mást is szeretnél a kontrollerrel végezni:
Válaszd a Timer1 -et vagy a Timer3 -at (Ha timer0 lehet 16 bites is, akkor a kontroller min. 18F). Az előosztót állítsd be, hogy igaz legyen az alábbi képlet: 20ns < Tt1p < (Tcy+40) / N. A timer2 /vel és egy CCP modullal könnyen megoldható az 1 s (vagy bármi más) kapuidő külső alkatrészek nélkül (egy átkötést leszámítva). A CCP capture módban a Timer1 vagy Timer3 16 bites értékét a CCP bemenet vátásakor eltárolja. Az esetleges túlcsordulásokat programmal lehet számolni. Mivel minden funkció megszakítással kezelhető, a műszer bármi mást is csinálhat a mérés közben. 50MHz esetén a 100Hz felbontás min. 2 ppm -es időalapot igényel. A normál quartz 20..50 ppm -es, a tokozott oszcillátor 20..10 ppm -es. A pontosabbak pokoli drágák. Egy 20 ppm -es időalappal nincs értelme 1 kHz -es felbontás alá menni. A hozzászólás módosítva: Jún 23, 2014
Srácok, nem vagyok nagy guru az elektronikában, így ismét hozzátok fordulok.
A kérdésem a linkelt kapcsolásom egy két pontjára írányul. Ez egy Bináris óra alap panelja lenne: 1. véleményetek szerint hová érdemesebb vagy célszerűbb raknom a kristályt a kölök panel alá vagy is a PIC alá vagy esetleg a PIC mellé? Azért ez a kérdés mivel SMD kivitelben van a PIC így egy kölökpanelt készítek és azt fogom tüskesorosan rányomni a főpanelre. Tehát 1-es vagy a 2-es helyre tegyem a kristályt? 2. a második kérdésem az akuval kapcsolatban lenne. Egy másik topikban láttam ezt az akus kiegészítést ami a főnyák bal szélén foglal helyet. Egy 3-5v-os elem kerülne majd bekötésre az esetleges áramszünetekből adódó ismételt beállítások elkerülése érdekében. Kérlek benneteket ellenőriztek le, hogy lehetőleg ne jöjjön ki semmiből sem a füst. Köszönöm.
Üdv!
Ha befér a kispanel alá, akkor ott jobb, mert közelebb van a PIC-hez. Az akkus rész nem jó. Így töltődne, de nem jut vissza a fesz a stab kimenetére. A mellékelt kapcsolás szerint kellene megoldanod. A sávvezetéseket még nézd át szerintem, ha te alkottad. Lehet még optimalizálni pár helyen (pl.: a felső részen a GND vezetése nem túl optimális). A hozzászólás módosítva: Jún 23, 2014
Köszönöm.
Módosítottam, így már jó lesz? Azon agyalok, hogy mekkora kapacitású aku kellene ahhoz, hogy akár egy napot is elmenjen a kapcsolás. ui: bináris óra 20db led kapcsolgatása.. A hozzászólás módosítva: Jún 23, 2014
Így jó lesz. A kellő akku kapacitást, csak úgy tudot meghatározni, ha megméred a stab IC után az áramfelvételt, akkor amikor a legtöbb LED világít. Ha multiplexelve vannak a LED-ek, akkor akár elég sokáig is működhet. Az ilyen eszközöknél, áramszünet esetén általában csak az óra jár és nincs kijelzés, így nagyon sokáig működhet.
200 mA-rel számolva (ami elég sok) egy napra 4,8 Ah-ás akksi kellene. Ezért szoktak RTC ic-t berakni, az egy gombelemmel hetekig elmegy, viszont nincs kijelzés ha nincs áram.
Értem és köszönöm a segítséget és a kimerítő választ.
Igen multiplexelve lesznek a ledek. Arra is gondoltam amit említettél (csak az ic kap áramot, ha nincs hálózat), de ahhoz az egész nyákot újra kell tervezzem. (Későbbiekben egy újabb változatban már így lesz) Lényegében elmondható, hogy 1-3óránál tovább nem szokott áramszünet lenni így maximum ezen idővel kell számoljak és ahogy mondtad kimérem majd az áramfelvételt és ahhoz mérten teszek rá akut.. Pali79-nek is megy ez a válasz: Közben én is számolgattam és ha jó a gondolatmenetem a legtöbb led akkor világít amikor 17:37:37 következik be, ekkor 14db led villanik fel egyszerre vagy is multiplexelve. 1led kb. 20mA-ert fogyaszt, vagy is 20x14 == 280 + egyéb áramkör. Tehát kb. 300mA-es lenne a maximum fogyasztása az órának. Nyilván itt minden állásban ki kellene számolnom mennyit fogyaszt és azt átlagolnom szóval ez csak tényleg a maximum felvétel meghatározására lehet jó. (Persze nem pontos így sem) Köszönöm.
Pongyolán foglmazva: 12 V-tal tölteni egy 12 V-os akksit? Kevés.
A hozzászólás módosítva: Jún 23, 2014
A számításod nem biztos, hogy jó, mert a multiplex miatt csak egy kis időre villannak fel a ledek. Magyarán a kitöltési tényezőnek megfelelő áramot fogsz mérni majd.
Sziasztok
Szenvedek az mplab-el de nem sikerül a dolog. Abban kérném a segítségeteket hogy egy adott asm file-t hogy tudok belezsufolni egy 12F675-be mert amikor exportálok akkor 91kb-os file-t csinál mig nekem sokkal kissebb hely áll rendelkezésemre. Ha feltöltöm ide a file-t akkor valaki tud segíteni a forditásban? Üdv Kovács G A hozzászólás módosítva: Jún 23, 2014
Nem a fájlméret számít, hanem az, hogy a memóriában mettől-meddig helyezkedik el a program. Kis gyakorlattal az Intel HEX formátumú állományból is kiolvasható, de az MPLAB Memory Gauge menüpont is elárulja.
Az igazság. idáig flowcode-al irogattam programokat de most találtam egy file-t amit kicsit modosítanom kellene majd leforditani hex-be de ez az MpLab nekem magas
Közben megoldodott, rosszul másoltam be az asm file-t.
Még egy gond amire nem tudok gombotvarrni, egy hibaüzenetett kapok de nem tudom miért.
Idézet: „Programming Target (2014.06.23. 21:51:51) PIC12F675 found (Rev 0xB) Erasing Target Programming Debug Executive (0x-300 - 0x3FF) Verifying Debug Executive (0x300 - 0x3FF) Programming Debug Vector Verifying Debug Vector Programming Configuration Memory Verifying Configuration Memory PK2Error0028: Unable to enter debug mode NOTE: This device requires an ICD Header for debug. See "Header Specification" DS51292. PICkit 2 Ready” Valaki meg tudja mondani mi a baj? A hozzászólás módosítva: Jún 23, 2014
Így elsőre: DEBUG módban van a program.
Állítsd RELEASE-re. A hozzászólás módosítva: Jún 23, 2014
Szerintem nem programozóként, hanem debuggerként használod a PK2-t ( a PROGRAMMER-nél válaszd ki, ne a DEBUGGER fülön!) !
Sebességmérőt szeretnék készíteni 16F877A-val és egy kis segítségre lenne szükségem. Odáig eljutottam, hogy a CCP2-vel figyelek egy HALL szenzort. Minden kiolvasás hatására az Timer1 értékét elmenti két-két regiszterbe, tehát minden második kiolvasásra van két eredmény amiből számolni lehet. Nekem a kiolvasások között eltelt időre lenne szükségem a sebességhez. A példa szerint a két esemény között eltelt idő = az elmentett értékek különbsége · Timer1 léptetőjel periódusideje.
Az elmentett értékek különbsége megvan a példában is. A gondom a Timer1 periódusidejével van, mert ha a PIC-et is hajtó órajelet veszem alapul akkor ha jól tudom a periódusidő a frekvencia reciproka, ami egy baromi kicsi szám mégpedig másodpercben. Nem tudom ezzel, hogy kell számolni.
A TMR1 az a PIC órajel negyedével léptet. Figyeled a periódusidőnél a TMR1 túlcsordulását is?
Tudom, hogy a negyedével léptet de az is sok vagyis a periódusidő olyan kicsi, hogy nem tudom hogyan számoljak vele. A túlcsordulással nem foglalkozik a példa, így én sem, eddig. Tudom, hogy kellene, de azt sem tudom, hogy azzal mit kezdjek. Ezért is kellene a segítség.
Szia!
Idézet: Nem, minden olvasás után tudsz számolni, mert az előzőhöz képest tudod, hány impulzus jött be ! Itt figyelned kell a túlcsordulást, mert ha adat1=10500, adat2= 50500, akkor ugyanilyen sebesség mellett adat3=90500 lenne, de a 16 bites számláló ezt adat3=90500-65536 értéken fogja megjeleníteni, miközben beállítja a túlcsordulás jelzését is !„Minden kiolvasás hatására az Timer1 értékét elmenti két-két regiszterbe, tehát minden második kiolvasásra van két eredmény amiből számolni lehet.” Azt, hogy ez mennyi idő, azt pedig a következőképpen tudod meghatározni: adat2-adat1= 40000, azaz ennyit számolt, egy lépés az órajel frekijének a negyedével történik, tehát pl. fosc= 4MHZ esetén 1 us a léptetési idő, amiből a 40000 db pont 40 ms-ot ér ! Remélem nem volt túl bonyolult ilyen tömören leírva ?! Sok sikert!
Köszi a segitséget. Teljesen kezdö vagyok, és minden segitség jol jön.
Üdv mindenkinek.
Köszönöm az eddigi válaszokat és linket. Még egy kérdés lenne. Ha a 16f84 helyett 16f884 vagy 887-et használok a 16f84-es progija probaképpen betölthetö-e és müködik-e vele. Ugyanis igazábol egy többfunkcios müszer lenne. L-C-ESR-F.
Simán nem, átdolgozva persze megoldható, de kezdőnek nem biztos, hogy egyszerű !
Hát nem teljesen értem, már csak azért sem, mert a példa tök mást mond: Bővebben: Link
Az időt értem csak azt nem, hogy ezt, hogy kell átültetni a kódba. A hozzászólás módosítva: Jún 24, 2014
Szia!
A példa egy elvet akar bemutatni és csak két mintából számolna, pontosabban azt mutatja meg, hogy milyen elven mérheted meg a két minta között eltelt időd a CCP modul segítségével! Nem foglalkozik azzal, hogy nullázza a számlálót, az esetleges túlcsordulás sem érdekli... Igazából a CCP modul használatához egy kis adalék. Csak utal arra, hogy a két mintát ki kell vonni egymásból ( adat2 -adat1 az írásomban ), időtartam számítás ( léptetési idő * darabszám= 40 ms ), konverzió és kijelzés: ezek a kapott eredmény megjelenítéséhez kellenek, ezt nem írtam az előző hozzászólásomban ( mert nem ez volt a kérdés ! ). Idézet: Ez a programozás, ha most kezded, akkor ne ezzel kezdj szerintem! „Az időt értem csak azt nem, hogy ezt, hogy kell átültetni a kódba.” |
Bejelentkezés
Hirdetés |